реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> AVRStudio, Как прогнать программу с прерыванием?
polkin777
сообщение Oct 6 2007, 04:27
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 4-10-07
Пользователь №: 31 075



Изучаю прерывания. Установил в програмку внешнее прерывание на ногу виртуального тини2313. Есть возможность при пошаговом прогоне программы изменить на данной ноге прерывания сигнал, что бы увидеть работу прерывания....
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Oct 6 2007, 08:21
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



В принципе есть - в студии доходиш до места ожидания прерывания а потом сам руками выставляеш уровень на лапе.. но это как то ...... по моему лучше в протеусе отсимулировать, или есчё лучше загнать в реальный камень...
Go to the top of the page
 
+Quote Post
polkin777
сообщение Oct 7 2007, 12:13
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 4-10-07
Пользователь №: 31 075



Интересует где именно "сам руками выставляеш уровень на лапе". чего жать нужно?
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Oct 7 2007, 20:35
Сообщение #4


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



В AvrStudio справа панель портов, выбрать нужный и использовать.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
Dibor
сообщение Oct 7 2007, 21:25
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 12-04-06
Из: Haifa
Пользователь №: 16 042



Цитата(mdmitry @ Oct 8 2007, 00:35) *
В AvrStudio справа панель портов, выбрать нужный и использовать.


Только тыркать нужно не PORT а PIN !
Go to the top of the page
 
+Quote Post
polkin777
сообщение Oct 8 2007, 04:57
Сообщение #6





Группа: Новичок
Сообщений: 5
Регистрация: 4-10-07
Пользователь №: 31 075



Спасибо за помощь. Второй вопрос. Тини 2313 имеет 8 выводов прерывания PCINT0-7 и только один вектор.... Значить я не могу использовать несколько прерываний одновременно?
Go to the top of the page
 
+Quote Post
mse
сообщение Oct 8 2007, 06:20
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(polkin777 @ Oct 8 2007, 08:57) *
Спасибо за помощь. Второй вопрос. Тини 2313 имеет 8 выводов прерывания PCINT0-7 и только один вектор.... Значить я не могу использовать несколько прерываний одновременно?

Ну, в векторе анализируй, кто дёрнулся. Делай приоритетный анализатор пинов. Отработал первую ситуаццыю, возвращайся в анализатор опять. Выход из прерывания только из анализатора. Типа "всё, больше нет никто - аут..."
Go to the top of the page
 
+Quote Post
polkin777
сообщение Oct 8 2007, 07:11
Сообщение #8





Группа: Новичок
Сообщений: 5
Регистрация: 4-10-07
Пользователь №: 31 075



На выходит каменный цветок..... Не могу добиться перехода на метку PCINT при изменении PINB0...


.include "tn2313def.inc"
.device attiny2313



.def temp =r16 ;general scratch space

rjmp RESET ;Reset Handle
rjmp PCINT ;irq0
reset:
ldi r28,low(RAMEND)
out SPL,r28

ldi temp,0x01 ;initialise port B as O/I
out PCMSK,temp ;Прерывание по PINB0.
ldi temp,0x05 ;initialise port B as O/I
out MCUCR,temp ;По низкому уровню.
ldi temp,0x20 ;initialise port B as O/I
out EIFR,temp ;PCIF После сработки заводит снова прерывание(очищает флаг для прерывания).
ldi temp,0x20 ;initialise port B as O/I
out GIMSK,temp ;PCIE разрешает работу этого прерывания (включает его)

delay:
ldi r20,255
magain: ldi r19,255
fagain: dec r19
brne fagain
dec r20
brne magain
ret

PCINT:
ldi temp,0b10101010
out DDRB,temp
reti
Go to the top of the page
 
+Quote Post
676038
сообщение Oct 8 2007, 13:36
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 25-07-06
Пользователь №: 19 070



Почему-то мне кажется, что надо еще разрешить прерывания глобально (sei).
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Oct 8 2007, 14:11
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 676038 - правильно кажется - нету sei там, а значит и не будет интерруптов..
Go to the top of the page
 
+Quote Post
polkin777
сообщение Oct 8 2007, 14:18
Сообщение #11





Группа: Новичок
Сообщений: 5
Регистрация: 4-10-07
Пользователь №: 31 075



Спасибо помогло. "надо еще разрешить прерывания глобально (sei)."
Go to the top of the page
 
+Quote Post
swisst
сообщение Oct 9 2007, 09:53
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Дабы не плодить темы и я спрошу

Отладка в АВРСтудии приема по UART. Приемник включен, прерывания по приему и глобальные прерывания разрешены, прерывание обрабатывается, но данные которые я пишу в буфер приемника (в панеле отладки) при следующем такте сбрасываются вместе с установкой бита прерывания UDRE (USART Data Register Empty). Попадая в обработчик прерывания первым делом переписываю содержимое буффера во временную переменную, но там ,к моему сожалению, - пустота...

Подскажите, что я делаю не так ?
Go to the top of the page
 
+Quote Post
mse
сообщение Oct 9 2007, 09:56
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(swisst @ Oct 9 2007, 13:53) *
... но там ,к моему сожалению, - пустота...
Подскажите, что я делаю не так ?

Всё так и есть. Читаем пустоту и правим уже в регистере.
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Oct 11 2007, 14:05
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(swisst @ Oct 9 2007, 13:53) *
Дабы не плодить темы и я спрошу

Отладка в АВРСтудии приема по UART. ... данные которые я пишу в буфер приемника (в панеле отладки)


А даже и не надо писать в буфер. Просто ткни мышой в бит RXC (UCSRA.7) - будет прерывание, а потом как mse сказал, "Читаем пустоту и правим уже в регистере".
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01472 секунд с 7
ELECTRONIX ©2004-2016