AnsweredAssumed Answered

MQX interrupt

Question asked by Andy C on Sep 10, 2017
Latest reply on Sep 13, 2017 by Daniel Chen


I am using an ADC interrupt under MQX.The adc is triggered by TPM(FTM).
I have one single task.The interrupt is running correctly but the task's main loop blocks.
The task does not execute any thing except the interrupt.
It looks that task (while loop)remain always blocked when the task contains an interrupt.
What can I do so that the task(while loop) and the interrupt both run.

 adc0_isr_ptr               = _mem_alloc(sizeof(ADC0_ISR_STRUCT));
 adc0_isr_ptr->OLD_ISR_DATA = _int_get_isr_data(INT_ADC1);
 adc0_isr_ptr->OLD_ISR      = _int_get_isr(INT_ADC1);
 _int_install_isr(INT_ADC1, adc_ISR, adc0_isr_ptr);
 _nvic_int_init(INT_ADC1, 3, TRUE);

 

void adc_ISR(pointer user_isr_ptr)
{
ADC1_SC1A =  AIEN_ON | DIFF_SINGLE | ADC_SC1_ADCH(0);
result =  ADC1_RA;
printf("ADC ch 00: %4d\n ", (uint16_t) ADC1_RA);
     
}

Outcomes