0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 127
1

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

22.01.2013, 18:07. Показов 6020. Ответов 9
Метки нет (Все метки)

Кто-нить вкурсе есть ли у СТМов флаги внешних прерываний портов, а если есть то где их найти?
А то я пока не нашел...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2013, 18:07
Ответы с готовыми решениями:

Внешние прерывания
Доброе время суток! Подскажите пожалуйста как настроить внешнее прерывание на еще одном порте. Я...

Внешние прерывания
Присобачил к STMf100 ENC28J60, пакеты принимает/отправляет) Решил забирать пакеты по прерыванию по...

Внешние прерывания STM32F407
Добрый день! Вообщем только начал разбираться с STM32F407 discovery. Светодиодом помаргал, кнопку...

внешние прерывания на stm32discovery
Доброго времени суток. Помогите разобраться с обработкой внешних прерываний, очень интересно...

9
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 127
22.01.2013, 18:35 2
В предыдущих темах было уже про внешние прерывания, и там упоминался EXTI_SR1, только его что-то нет нигде, ни в даташите ни в stm8sxxxx.h - файлах...
0
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
22.01.2013, 19:12 3
найди там библиотеку stm8_EXTI.h (что-то вроде этого) и там есть даже описание функций
0
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 127
23.01.2013, 14:30 4
Спасибо, я уже разобрался с этим, короче EXTI_SR есть только у STM8L, у STM8S его нет просто.
0
2 / 2 / 0
Регистрация: 11.02.2011
Сообщений: 187
20.06.2013, 13:46 5
Цитата Сообщение от Orshii
короче EXTI_SR есть только у STM8L, у STM8S его нет просто.
Блин, ребята! Ну хоть бы отписались ТУТ КАК ЖЕ ГАСИТЬ ЕГО при таких делах????
HELP!
Циклюсь изза НЕсброса флага в EXTI1 ;Port B external interrupts, а самого флага то нет!

мануал RM0031 получается лажовенький, особенно в отношении потрохов STM8S003...
где нюансы читануть?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
20.06.2013, 14:06 6
Цитата Сообщение от vostomy
где нюансы читануть?
Спросить у dsodir или Omkit5o.
0
2 / 2 / 0
Регистрация: 11.02.2011
Сообщений: 187
20.06.2013, 14:59 7
Ну вот и пошла великая "ботва", блин!
Прям, как в грамматике пишется одно, а "слышится" другое!...
имеем STM8S003 на дискавери + STVD
пишу:
Код
mov      EXTI_CR2, #0ffh
в отладчике имеем по факту 1Fh ???
Ну допустим внутри "там" неполные 8 бит и даже где то ЭТО написано...
а вот это вообще шикарно:
Код
bset     PB_CR2, #7
имеем 20h ??????????
Код
bset     PB_CR2, #6
имеем 40h, что законно собственно, ладно, тады так:
Код
bset     PB_CR2, #5
имеем 20h, что тоже правильно, но при этом если:
Код
mov      PB_CR2, #0f0h
имеем 0f0h ???????
А вот это какого хрена!?
Извините, раз уж побитово архитектурно что то не так типа зарезано, урезано,
то что для mov все правильно пишется-слышится(читается)???
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
20.06.2013, 15:41 8
Цитата Сообщение от vostomy
...имеем ...
Не мешало бы уточнить, где (ПО) вы все это имеете?
0
2 / 2 / 0
Регистрация: 11.02.2011
Сообщений: 187
20.06.2013, 15:59 9
вообще то я написал STVD
ST Visual Develop (STVD) самый самый фирменный :)
http://www.st.com/web/catalog/... 7/PF210567
0
2 / 2 / 0
Регистрация: 11.02.2011
Сообщений: 187
20.06.2013, 16:17 10
Ладно, рассказываю подробнее.
Вроде и понял и победил методом тыка, а не поиском мануалов...

Итак.
На дискавери которая VL с подопытным кроликом STM8S003 имеется кнопка, которая заведена с подтяжкой на PB7.
Нажатие на кнопку землит 7-й бит, стало быть прерывание по изменению состояния пина если изучать, то надо:
написать хотябы пустой обработчик,
сконфигурировать на данном порту для данного пина разрешение на генерацию внешнего прерывания по нажатию кнопки (ранее думал так, как написано в мануале 0031, т.е. что есть еще возможность по фронту настроить....)
Ну вот и получается,
что если просто взводить один лишь 7-й бит в соответствующем регистре PB_CR2 так:
Код
bset     PB_CR2, #7
то отладчик улетает по вектору EXTI1 и "крутится" в нём не взирая на IRET
так, как будто есть несброшенный флаг этого конкретного прерывания, но его то НЕТ!
Прерывание есть, а флага нет.
Раз его нет, то и сбрасывать ничего не надо, просто вышел по IRET и ушел туда откуда пришел, но!
Но отладчик тупо крутился в почти в пустом обработчике:
Код
;Port B external interrupts
EXTI1
nop
IRET
на некоторой итерации мозгового размышлизма взял да и заменил инициализацию пинового разрешения:
Код
;      bset     PB_CR2, #7        ; разреш прерывания на кнопку
mov      PB_CR2, #80h     ; разреш прерывания на кнопку
все излечилось, т.е. по нажатию улетает в обработчик и по IRET уходит в пустой основной цикл...
А вот почему так?
STM его занает!
Похоже и мануал нашелся, кое что более понятно.
http://www.lodin.co.kr/images/... _Rev.6.pdf
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2013, 16:17
Помогаю со студенческими работами здесь

Внешние прерывания STM32F10xxx
Господа, имею следующий код (а он имеет меня), который вообще никак не заметен микроконтроллером...

Внешние прерывания STM8L
Всем доброго дня! Столкнулся с чем-то непонятным работая с внешними прерываниями на...

Внешние прерывания STM32
Здравствуйте, уважаемые форумчане. Разбираюсь я нынче в прерываниях и их приоритетах. Так вот...

Внешние прерывания STM8L
Доброе время суток. Разбираюсь сейчас с STM8L-Dyscovery. Пытаюсь повесить внешнее прерывание по...

stm8s внешние прерывания Halt();
Доброго времени. помогите.... имею платку с stm8s103 . К порту "C" подключена кнопка - настроена...

Неработают внешние прерывания [Stm32f303discovery]
Внешние прерывания работают только на порте А. Пины остальных портов просто не реагируют никак. На...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru