-
- Логически лучше всего подходит, но есть одна нестыковка: бит Pending сбрасывается в конце обработчика. Осциллограммы вы видите, звон если и есть, то не сильный. Dingo(402 знак., 16.03.2018 11:51)
- Два предположения: LightElf(108 знак., 16.03.2018 12:34)
- “1) После ClearPending поставить __DSB() 2) После __DSB() добавить принудительный сброс прерывания на NVIC” Sl(938 знак., 18.03.2018 12:01)
- 1) Какбэ да, но бывают нюансы. LightElf(169 знак., 19.03.2018 21:00)
- именно так это и происходит, поэтому тоже не оч понял про необходимость сброса на NVIC - 0men(19.03.2018 14:12)
- Спасибо! 1) После ClearPending поставить __DSB() - пофиксило. Можете объяснить, что там происходило в общих чертах? Про инструкцию прочитал, но понятней, в каких случаях они нужны, не стало. Dingo(47 знак., 16.03.2018 13:06 - 13:08)
- Вы делаете запись в регистр EXTI, данные пошли по D-Bus, а процессор пошел выполнять следующие команды. Регистры EXTI находятся на шине APB2. Тактовая частота этой шины отличается от тактовой частоты процессора, соответственно существует мост со LightElf(336 знак., 16.03.2018 16:00)
- Он может зайти в прерывание повторно. Так как заход повторный, EXTI->PR будет равен 0 (флаг снят при первом заходе), __DSB() не даёт этому произойти. evgeniy1294(31 знак., 16.03.2018 13:34)
- Даже если так, то: 1) для входа в прерывание надо сохранить регистры на стеке, потом их восстановить; 2) сброс флага производится в регистре периферии. И тем не менее эффект просочился через "вот это вот всё"? Отпишитесь о результате тестов, Dingo(12 знак., 16.03.2018 14:54)
- Да, конечно. - evgeniy1294(16.03.2018 14:57)
- Даже если так, то: 1) для входа в прерывание надо сохранить регистры на стеке, потом их восстановить; 2) сброс флага производится в регистре периферии. И тем не менее эффект просочился через "вот это вот всё"? Отпишитесь о результате тестов, Dingo(12 знак., 16.03.2018 14:54)
- “1) После ClearPending поставить __DSB() 2) После __DSB() добавить принудительный сброс прерывания на NVIC” Sl(938 знак., 18.03.2018 12:01)
- Два предположения: LightElf(108 знак., 16.03.2018 12:34)
- Логически лучше всего подходит, но есть одна нестыковка: бит Pending сбрасывается в конце обработчика. Осциллограммы вы видите, звон если и есть, то не сильный. Dingo(402 знак., 16.03.2018 11:51)