×

Внимание

Форум находится в режиме только для чтения.

Внешние прерывания STM8

11 года 2 мес. назад #4760 от Face
Face создал тему: Внешние прерывания STM8
Добрый день. Помогите с проблемой. Пишу программу для устройства на STM8S003F3. Необходимо обрабатывать внешние прерывания с ножки PD3. Не могу найти регистр EXTI_SR, чтобы сбросить флаг прерывания. В даташите он упоминается один раз и более нигде не встречается, в симуляторе IAR также отсутствует.
11 года 2 мес. назад - 11 года 2 мес. назад #4762 от Денис Ягов
Денис Ягов ответил в теме Re: Внешние прерывания STM8
Добрый день.

А почему не используете стандартную библиотеку?
Там все ответы, можно по гиперссылке перейти в исходник любой функции и посмотреть какой регистр она поворачивает.

Настройка прерывания - первое вложение.

Работа в прерывании (EXTI) - второе вложение.
И судя по написанному флаги статуса (SR) нарочно никто не крутит.

Если вы хотите сказать, что эмулятор - не меняет биты каких-то регистров периферии - то это проблема эмулятора. При закрузке в отладку всё будет управляться.
11 года 2 мес. назад #4763 от Face
Face ответил в теме Re: Внешние прерывания STM8
Денис, спасибо за внимание. Косяки симулятора не страшны. Дело в том, что в пдфе сказано, что в этом регистре устанавливается флаг прерывания порта, и при обработке прерывания нужно сбросить этот флаг, записав в него 1, иначе после выхода из обработки прерывания оно снова вызовется. В библиотеке IAR есть только описание регистров конфигурации и больше ничего. Собственно, как и в рефренс мануале на чип. 

typedef struct EXTI_struct
{
__IO uint8_t CR1; /*!< External Interrupt Control Register for PORTA to PORTD */
__IO uint8_t CR2; /*!< External Interrupt Control Register for PORTE and TLI */
}
EXTI_TypeDef;

 Посмотрел мануалы на другой чип STM8, там регистры EXTI_SRx указываются. В карте регистров на чип STM8S003F3 регистр EXTI_SRx также отсутствует. Не может же быть такого, что этот чип не поддерживает внешние прерывания? )))
11 года 2 мес. назад #4764 от Денис Ягов
Денис Ягов ответил в теме Re: Внешние прерывания STM8
Исключено.

Возможно вы смотрели на 8L - контроллеры, у них может отличаться (и библиотека своя).

Вложения: описание регистров в обзорном описании, описание регистров в мануале на 003 контроллеры и на остальные (в том числе у которых CAN интерфейс)

В приведённом выше примере никто не крутил регистры xxx_SR.
11 года 2 мес. назад #4765 от Денис Ягов
Денис Ягов ответил в теме Re: Внешние прерывания STM8
как я и предполагал, вы читали мануал на STM8L семейство.
Оно отличается немного.
Скан выложил.
11 года 2 мес. назад #4766 от Face
Face ответил в теме Re: Внешние прерывания STM8
Спасибо за столь информативные ответы. 
Я пользуюсь мануалом на STM8S, тот, что постом выше. Про него я и говорю, там не указан регистр EXTI_SR. Почему я до него докопался? Смущает фраза в пдфе (на рисунке).  Отладка странно работает, иногда при выходе из прерывания тут же возвращается обратно и прерывание обрабатывается несколько раз подряд. Возможно такое, что этот регистр скрыт, и алфг соответствуюшего прерывания сбрасывается при вызове обработчика? Не понятно, почему этот регистр не видно через отладчик.
Время создания страницы: 0.044 секунд
Работает на Kunena форум