Hi everyone,
i have some problem. I prepared:
a) buffer for ADC data:
volatile unsigned int buffer[104];
b)variable for test
unsigned char interruptCounter;
c) interrupt handling:
_attribute_ram_code_ void irq_handler(void) {
irq_blt_sdk_handler ();
timerInterruptService();
if((reg_dfifo_irq_status & FLD_AUD_DFIFO2_H_IRQ) == FLD_AUD_DFIFO2_H_IRQ){
interruptCounter++; //for test
reg_dfifo_irq_status |= FLD_AUD_DFIFO2_H_IRQ;
}
}
I want to put ADC values to the buffer and generate interrupt when i exceed 96 measurements. So, I write something like this in my init_user function:
adc_init();
adc_base_init(GPIO_PB6);
irq_enable();
adc_config_misc_channel_buf((unsigned short *)buffer, 104<<2); //size*4
reg_dfifo_mode |= FLD_AUD_DFIFO2_H_INT;
reg_dfifo2_h_level = 96; //I tried also 96*4
reg_irq_src |= FLD_IRQ_DAM_FIFO_EN;
reg_irq_mask |= FLD_IRQ_DAM_FIFO_EN;
dfifo_enable_dfifo2();
adc_power_on_sar_adc(1);
Values interruptCounter is always "0". Do someone know why interrupt dosn't work?
Best regards
HI ,
We haven't the example for this usage,if you need this feature ,please contact our sales.