Здравствуйте уважаемые коты. Подскажите пожалуйста:
контроллер ATiny2313, должно происходить прерывание таймера-счетчика по переполнению, а не происходит. Включаю так:
ldi R16,0x01 ;установка коэффициента пред деления таймера
out TCCR0,R16
ldi R16,0x02 ;разрешение прерывания таймера
out TIMSK,R16
sei ;разрешение глобальных прерываний
не становиться на вектор прерывания ну никак, может это глюк AVR Studio?
Описываю прерывания так:
.cseg ; Сегмент кода программы
.ORG $000 ; (RESET)
RJMP Reset
.ORG $001
RETI
.ORG $002
RETI
.ORG $003
RETI
.ORG $004
RETI
.ORG $005
RETI
.ORG $006
RJMP tick ;переполнение таймера (5 мс)
.ORG $007
RETI
.ORG $008
RETI
.ORG $009
RETI
.ORG $00A
RETI
.ORG $0B
RETI
.ORG $00C
RETI
.ORG $00D
RETI
.ORG $00E
RETI
.ORG $00F
RETI
.ORG $010
RETI
.ORG $011
RETI
.ORG $012
RETI
.ORG INT_VECTORS_SIZE ; Конец таблицы прерываний
P.S. Кстати, кто знает, где прописан этот INT_VECTORS_SIZE? в файле tn2313def.inc его нет? Не понимаю его назначения.
AVR Studio 4 не симулирует прерывания?
- Реклама
Re: AVR Studio 4 не симулирует прерывания?
TCCR0Bkvark85 писал(а):контроллер ATiny2313, должно происходить прерывание таймера-счетчика по переполнению, а не происходит.
Последний раз редактировалось ValBag Вт янв 11, 2011 21:41:37, всего редактировалось 1 раз.
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: AVR Studio 4 не симулирует прерывания?
Если не ставить букву в конце TCCR0, то значение по команде OUT записывается в TCCR0B, проверил для 2313 в студии 4.17
- kvark85
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Сб ноя 08, 2008 21:23:06
- Откуда: Харьков
- Контактная информация:
Re: AVR Studio 4 не симулирует прерывания?
Значит вот что у меня было. Переходил на другой микроконтроллер а в свойствах проекта забыл поменять МК. Становится на прерывание теперь, не смотря на то что я неправильно выставлял частоту предделителя она менялась правильно, то есть при изменении TCCR0 менялся TCCR0B. Это еще не все странности. Дело в том что я еще не указал начало стека и несмотря на это все работает правильно. Он у меня в "Processor" сразу после компиляции программы указывается. Так и должно быть? Нужно ли его при это в программе инициализировать?
- Реклама
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: AVR Studio 4 не симулирует прерывания?
Стек обязательно нужно инициализировать если в программе есть (R)CALL, PUSH, POP или прерывания. Что касается TCCR0, думаю где-то в inc-файле он просто 2 раза определен, как TCCR0 и как TCCR0B.
Ага, нашел, написано "для совместимости", очевидно имеется ввиду at90...
Ага, нашел, написано "для совместимости", очевидно имеется ввиду at90...
- kvark85
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Сб ноя 08, 2008 21:23:06
- Откуда: Харьков
- Контактная информация:
Re: AVR Studio 4 не симулирует прерывания?
Спасибо. Проблема решена


