Hello,
I'm trying to write my ADC samples over spi on a sd card (Using SAADC like in the sdk 12 example with PPI and using fatfs like in the example in the sdk).
I open the file I want to write in only once in the beginning and close it in the end, not every time when I write in the file.
Everything works, but because I use timestamps after every sample I can see that everytime I call the f_write function, my ADC is blocked for a few miliseconds. The time where it's blocked depends on the amount of data I send.
I know that the disk_write function waits for the write done event (busy flag):
ret_code_t err_code = nrf_blk_dev_write_req(m_drives[drv].config.p_block_device, &req);
if (err_code == NRF_SUCCESS)
{
while (m_drives[drv].busy)
{
m_drives[drv].config.wait_func();
}
if (m_drives[drv].last_result == NRF_BLOCK_DEV_RESULT_SUCCESS)
{
return RES_OK;
}
}
return RES_ERROR;
So I think this while loop is where my code blocks. I tried to delete the waiting part, going on with my sampling and checking before writing again if the device is still busy.
No error occurs, but when I read out my card on Pc the file is empty.
Is it somehow possible to go on sampling the ADC while writing on the SD card?
Regards Lea