Hello Everyone. Had a problem to make DMA interrupt to work. I would like to thank M3allem for his/her help and a colleague of mine, Mr George Saliba. I'm sharing my code which is working.
Hello, I read that you had problem to make it work. It is my case and even your example does not work. My problem is that no DMA interrupt happens. I've got my TIM1 interrupt which works but not the DMA one. Do you have any hint ?
Otherwise, your comments say that the DMA interrupt happens when the tranfer is complete, but your flag (HT) concerns the Half Transfer, is that normal ? I don't know what to do, it's been two days that I struggle to make a DMA interrupt. Thanks in advance [ This message was edited by: bissong on 24-02-2009 16:08 ]
I think the order of your functions calls is the key to my problem, can you share it ? I did not find the right combination but I've seen that the debug differs with it.
In fact I think I tried everything, each time I launch the ADC conversion nothing happens anymore. I first get one timer interrupt as requested, thus it launches the ADC conversion and then I don't even have timer interrupt after that. When I comment the ADC_SoftwareStartConvCmd(ADC1, ENABLE) command, I have my timer interrupt every 60µs. It is quite weird that it doesnt work for me... [ This message was edited by: bissong on 26-02-2009 15:10 ]
Hello. This is the code im using for it to work. Im transferring half words as the ADC is 16-bit. It took me some time as well to work. This is how Im using it. Johann
I've found out what my problem was. In fact, I always put the same IRQ prototype as you did. But if I put ''void DMAChanneL1_IRQHandler(void)'' instead of ''DMA1_Channel1_IRQHandler'', it works perfectly. Thanks for your advices.