- Главная
- Форум
- Микроконтроллеры и Системы на Модуле (SOM)
- Микроконтроллеры
- Внешние прерывания STM8
Внешние прерывания STM8
- Face
- Автор темы
- Посетитель
11 года 2 мес. назад #4760
от Face
Face создал тему: Внешние прерывания STM8
Добрый день. Помогите с проблемой. Пишу программу для устройства на STM8S003F3. Необходимо обрабатывать внешние прерывания с ножки PD3. Не могу найти регистр EXTI_SR, чтобы сбросить флаг прерывания. В даташите он упоминается один раз и более нигде не встречается, в симуляторе IAR также отсутствует.
- Денис Ягов
- Посетитель
11 года 2 мес. назад - 11 года 2 мес. назад #4762
от Денис Ягов
Денис Ягов ответил в теме Re: Внешние прерывания STM8
Добрый день.
А почему не используете стандартную библиотеку?
Там все ответы, можно по гиперссылке перейти в исходник любой функции и посмотреть какой регистр она поворачивает.
Настройка прерывания - первое вложение.
Работа в прерывании (EXTI) - второе вложение.
И судя по написанному флаги статуса (SR) нарочно никто не крутит.
Если вы хотите сказать, что эмулятор - не меняет биты каких-то регистров периферии - то это проблема эмулятора. При закрузке в отладку всё будет управляться.
А почему не используете стандартную библиотеку?
Там все ответы, можно по гиперссылке перейти в исходник любой функции и посмотреть какой регистр она поворачивает.
Настройка прерывания - первое вложение.
Работа в прерывании (EXTI) - второе вложение.
И судя по написанному флаги статуса (SR) нарочно никто не крутит.
Если вы хотите сказать, что эмулятор - не меняет биты каких-то регистров периферии - то это проблема эмулятора. При закрузке в отладку всё будет управляться.
Последнее редактирование: 11 года 2 мес. назад пользователем .
- Face
- Автор темы
- Посетитель
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 также отсутствует. Не может же быть такого, что этот чип не поддерживает внешние прерывания? )))
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.
Возможно вы смотрели на 8L - контроллеры, у них может отличаться (и библиотека своя).
Вложения: описание регистров в обзорном описании, описание регистров в мануале на 003 контроллеры и на остальные (в том числе у которых CAN интерфейс)
В приведённом выше примере никто не крутил регистры xxx_SR.
- Денис Ягов
- Посетитель
11 года 2 мес. назад #4765
от Денис Ягов
Денис Ягов ответил в теме Re: Внешние прерывания STM8
как я и предполагал, вы читали мануал на STM8L семейство.
Оно отличается немного.
Скан выложил.
Оно отличается немного.
Скан выложил.
- Face
- Автор темы
- Посетитель
11 года 2 мес. назад #4766
от Face
Face ответил в теме Re: Внешние прерывания STM8
Спасибо за столь информативные ответы.
Я пользуюсь мануалом на STM8S, тот, что постом выше. Про него я и говорю, там не указан регистр EXTI_SR. Почему я до него докопался? Смущает фраза в пдфе (на рисунке). Отладка странно работает, иногда при выходе из прерывания тут же возвращается обратно и прерывание обрабатывается несколько раз подряд. Возможно такое, что этот регистр скрыт, и алфг соответствуюшего прерывания сбрасывается при вызове обработчика? Не понятно, почему этот регистр не видно через отладчик.
Я пользуюсь мануалом на STM8S, тот, что постом выше. Про него я и говорю, там не указан регистр EXTI_SR. Почему я до него докопался? Смущает фраза в пдфе (на рисунке). Отладка странно работает, иногда при выходе из прерывания тут же возвращается обратно и прерывание обрабатывается несколько раз подряд. Возможно такое, что этот регистр скрыт, и алфг соответствуюшего прерывания сбрасывается при вызове обработчика? Не понятно, почему этот регистр не видно через отладчик.
Время создания страницы: 0.038 секунд