roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 11:29

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: ATMega169 - проблема с прерываниями от таймера
СообщениеДобавлено: 29 апр 2009, 15:05 
Не в сети

Зарегистрирован: 29 апр 2009, 10:04
Сообщения: 5
Откуда: Tambov
прог. языки: Object Pascal; M
Приветствую всех!
Начал изучать программирование МК, написал простенькую программку мигания светодиода с помощью задержек - работает...
Решил усложнить - сделать тоже самое, но с помощью прерываний от таймера. И стою на одном месте уже 2 недели...
Пример реализации взял из книги "CodeVision AVR Пособие для начинающих". Светодиод должен мигать 1 раз в секунду. В итоге получилось: первое и второе прерывания после включения приходят с интервалом чуть больше минуты, остальные - как и должны быть (через 0.5 сек).
Так и не могу понять, почему первые 2 прерывания приходят с такими задержками...
Попробовал такую же прогу сделать для mega8 - работает без проблем (эмулировал в Proteus).

Помогите - где, что я не так настроил у 169-ой.
Прикладываю архив со схемой для Proteus и исходниками CVAVR для mega169 и mega8


Вложения:
Комментарий к файлу: Схема в Proteus и исходники CVAVR
Led_Proteus.rar [75.31 КиБ]
Скачиваний: 27
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATMega169 - проблема с прерываниями от таймера
СообщениеДобавлено: 29 апр 2009, 17:09 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Roman_tmb писал(а):
Пример реализации взял из книги "CodeVision AVR Пособие для начинающих". стою на одном месте уже 2 недели...
Ого ! Интересное пособие.

Roman_tmb писал(а):
эмулировал в Proteus.
Какой PROTEUS у вас ? Советую скачать PROTEUS 7.5 SP3 PRO - работает хорошо, все нужное в одном архиве. http://proteus123.narod.ru

В исходнике у вас 1 Мгц в ПРОТЕУСЕ 8 и формула в ините таймера - наверно лучше заранее ее посчитать.

А еще лучше настроить таймер и прерывание мастеровм кода - вот так - http://avr123.nm.ru/z6.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATMega169 - проблема с прерываниями от таймера
СообщениеДобавлено: 29 апр 2009, 17:38 
Не в сети

Зарегистрирован: 29 апр 2009, 10:04
Сообщения: 5
Откуда: Tambov
прог. языки: Object Pascal; M
avr123.nm.ru писал(а):
Какой PROTEUS у вас ? Советую скачать PROTEUS 7.5 SP3 PRO - работает хорошо, все нужное в одном архиве. http://proteus123.narod.ru


Версия Proteus такая же.

avr123.nm.ru писал(а):
В исходнике у вас 1 Мгц в ПРОТЕУСЕ 8 и формула в ините таймера - наверно лучше заранее ее посчитать.


В фузах установлен бит деления на 8 частоты, поэтому получается 1 МГц, но это проблемы не решает, даже если в протеусе указать 1МГц

avr123.nm.ru писал(а):
А еще лучше настроить таймер и прерывание мастеровм кода - вот так - http://avr123.nm.ru/z6.htm


Оба исходника созданы мастером кода CVAVR (и для mega169 и mega8).

Кстати, если в исходниках и протеусе исправить для частоты генератора 8 МГц, то задержка этих 2-х прерываний уменьшается до 12-13 сек (примерно в 8 раз).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATMega169 - проблема с прерываниями от таймера
СообщениеДобавлено: 29 апр 2009, 17:46 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
В Студии первое прерывание на 62.47 мС

далее через 62464 мкС примерно повторяются. или 499712 и 499713 тактов кварца.

Добавлено спустя 4 минуты 3 секунды:
Roman_tmb писал(а):
Оба исходника созданы мастером кода CVAVR (и для mega169 и mega8).

Ни разу не видел чтоб мастер CVAVR вот так лихо выписывал:
Код:
TCNT1=0x10000-(xtal/fdiv/frq);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATMega169 - проблема с прерываниями от таймера
СообщениеДобавлено: 30 апр 2009, 11:14 
Не в сети

Зарегистрирован: 29 апр 2009, 10:04
Сообщения: 5
Откуда: Tambov
прог. языки: Object Pascal; M
avr123.nm.ru писал(а):
Ни разу не видел чтоб мастер CVAVR вот так лихо выписывал:
Код:
TCNT1=0x10000-(xtal/fdiv/frq);


Считал, что такая конструкция прокатит.

Разобрался, в чем была моя ошибка. Спасибо за указание пути истинного


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO