Estoy usando MCU LPC1788 con el compilador KeilV5.
Tengo un ISR de temporizador en el que leo un canal de ADC específico de un formulario de valor y lo escribo en una tarjeta SD utilizando la biblioteca FATFS.
Aquí está mi código ISR del temporizador:
void TIMER1_IRQHandler(void){
if (TIM_GetIntStatus(LPC_TIM1, TIM_MR1_INT)== SET){
ADC_Init(LPC_ADC,838);
ADC_ChannelCmd (LPC_ADC,0,ENABLE);
while (!(ADC_ChannelGetStatus(LPC_ADC,0, ADC_DATA_DONE)));
ADCResult = ADC_ChannelGetData(LPC_ADC,0);
sprintf(OutputSample,"%ld\r\n",ADCResultScaled);
f_lseek(&File1, f_size(&File1));
//f_write(&File1,OutputSample,strlen(OutputSample), &FilePointer);
Counter++;
TIM_ClearIntPending(LPC_TIM1, TIM_MR1_INT);
}
}
No hay ningún problema con el código anterior, pero cuando elimino el comentario de la función f_write, el programa se detiene y no se ejecuta nada exactamente después de habilitar Timer1.
Por lo tanto, no puedo escribir los datos en la tarjeta SD en el temporizador ISR.
Debo mencionar que la función f_write funciona bien fuera del temporizador ISR.
¿Puedes adivinar dónde está el problema?
Gracias de antemano.