Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.09.2011, 16:29
|
|
Прописка
Регистрация: 25.03.2009
Сообщений: 137
Сказал спасибо: 22
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Почему не работает код с прерываниями
Код:
|
void main(void)
{
USARTinit(MYUBRR);
TIMSK=(1‹‹TOIE0)|(1‹‹TOIE1); // разрешаем прерывания от Timer0 и Timer1
TCNT1H=0;
TCNT1L=0;
TCNT0=0;
TCCR0=0b00000100; // запускаем Timer0 с предделителем 1:256
TCCR1B=0b00000111; // внешний сигнал T1 по фронту
sei();
while(1);
ISR(TIM0_OVF_vect)
{
sendChar(0xAA);
}
} |
В терминале ничего нет, как будто прерывания и не происходят.
Может кто укажет, где тут не правильно.
|
|
|
|
02.09.2011, 17:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Почему не работает код с прерываниями
Какой контроллер? TCCR 2 штуки обычно
|
|
|
|
02.09.2011, 17:09
|
|
Прописка
Регистрация: 25.03.2009
Сообщений: 137
Сказал спасибо: 22
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Почему не работает код с прерываниями
в протеусе нет at90usb162, поэтому симулирую atmega16
один 8 битный, другой 16 битный.
|
|
|
|
02.09.2011, 17:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,053
Сказал спасибо: 3,042
Сказали Спасибо 3,212 раз(а) в 2,182 сообщении(ях)
|
Re: Почему не работает код с прерываниями
1. Может это передача через USART или его инициализация с ошибкой?
2. "Моргание светодиодиком" вставить после "sendChar(0xAA)".
|
|
|
|
02.09.2011, 17:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,731
Сказал спасибо: 2,443
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: Почему не работает код с прерываниями
А обработку в теле main можно писать?
Программа отсюда
while(1);
не выйдет.
|
|
|
|
02.09.2011, 19:31
|
|
Прописка
Регистрация: 25.03.2009
Сообщений: 137
Сказал спасибо: 22
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Почему не работает код с прерываниями
baiderin, из while(1); мне и не нужно чтобы выходил,
пусть прерывания обрабатывает нормально, и это все.
USART функции проверил, они рабочие.
TIMSK это один регистр в одних контроллерах, но в некоторых есть и
TIMSK0, TIMSK1 или я не прав?
|
|
|
|
02.09.2011, 20:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Почему не работает код с прерываниями
Сообщение от Archer07
|
в протеусе нет at90usb162, поэтому симулирую atmega16
один 8 битный, другой 16 битный.
|
В настройках проекта Протеуса хоть указана мега16?
|
|
|
|
02.09.2011, 21:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Почему не работает код с прерываниями
Сообщение от Archer07
|
void main(void)
|
А что main уже void?! Можно еще сузить круг поиска, запретив прерывания Т1.
А если серьезно, что пошаговую отладку сложно сделать?! Все ведь уже знают, что у Протеуса бывают заморочки!
Последний раз редактировалось nonamedov; 03.09.2011 в 04:12.
|
|
|
|
03.09.2011, 10:45
|
|
Прописка
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
|
Re: Почему не работает код с прерываниями
Сообщение от Archer07
|
в протеусе нет at90usb162, поэтому симулирую atmega16
один 8 битный, другой 16 битный.
|
Завязывай со шпротеусом. Лучше в дебаггере AVRStudio,а еще лучше в IAR там можно и "СИкать" и отлаживать в одном флаконе.
Последний раз редактировалось heady69; 03.09.2011 в 10:50.
|
|
|
|
03.09.2011, 14:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Почему не работает код с прерываниями
Сообщение от nonamedov
|
А что main уже void?!
|
А кто сказал, что main() обязан что-то возвращать?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:35.
|
|