Коллеги, помогите разобраться с прерываниями USB .
1) Когда включено только прерывание USB_LP_IRQHandler и все прерывания обрабатываются только в нём, проблем нет.
2) Пытаюсь настроить прерывание USB_HP_IRQHandler и обрабатывать в нём флаг успешной транзакции USB_ISTR_CTR , т.к. оно только для этого и нужно. Обнаруживаю, что : - Программа с флагом USB_ISTR_CTR попадает то в HP , то в LP , хотя в HP все флаги USB->ISTR сбрасываются и флаги в регистрах конечных точек USB_EPNR_CTR_RX USB_EPNR_CTR_TX то же сбрасываются. По идее программа в LP попадать не должна, т.к. HP происходит раньше. - При снятом бите USB_CNTR_CTRM т.е. отключенном прерывании программа всё равно попадает в прерывание с флагом USB_ISTR_CTR , что совсем сбивает с толку.
Чего я не понимаю ?
Заранее спасибо !
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|