[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: RD3AVJ 
Форум » форумы » В разработке » Светодиоды не мигают или мигают неправильно (таймер ATMega8) (Странное поведение светодиодов при использовании таймера)
Светодиоды не мигают или мигают неправильно (таймер ATMega8)
lioshaДата: Четверг, 11.09.2014, 18:27 | Сообщение # 1
Группа: Пользователи
Сообщений: 1

Статус: Offline
Всем привет!
Решил вот сделать ребенку мигающие светодиоды на велосипед (а заодно наконец покодить под микроконтроллеры).
Сам я по професии электрик (не радиотехника), но было это давно. Сечас программист на Java. Си тоже учил, но опять же давно.
Купил я ATMega8A, программатор TL866A и несколько светодиодов.
Позапускал пару простых примеров, посмотрел/почитал мануалы и решил
приступить к самому главному.
Мигать светодиодами надо программно и чтоб была возможность мигать одновременно с разной частотой.
В связи с этим решил не использовать delay, а сделать правильно, через таймеры.
В общем написал код для таймера, для мигания, отладил в Atmel Studio 6
(AVR Studio) и попытался проэмулировать это дело в протеусе.
Вот тут началось неладное. Светодиоды мигали на глаз со случайной
частотой. В отладчике студии время между вызовами таймера примерно
совпадает с ожидаемым (+- пару миллисекунд).
Упростил немного код, пробовал менять частоту мигания таймера, ничего не
помогает. Я подумал что в протеусе что-то со временем во время
эмуляции, и решил проверить на реальной МК.
Но когда залил код в МК, оказалось что на нем светодиод вообще не мигает
а просто светит. Думал дело в частоте МК, посмотрел фьюзы, вроде
частота такая же как в отладке студии.
Вот код:


Думал что что-то с МК, добавил в основной цикл мигание с delay, примерно такое:

Код
TB(PORTC, 5);
_delay_ms(1000);
TB(PORTC, 5);
_delay_ms(1000);
При этом в реальном МК светодиод мигал, но не через 1 секунду, а реже. К
стати в это время другие светодиоды (оставшиеся на таймере) тоже
мигали, но так же с неправильной частотой (вроде гораздо чаще чем
должны).
Прикрепляю схему подключения МК. но при тесте я подключал только один
слабенький светодиод с резистором. Всего остального небыло.
Очень прошу вашей помощи в решении этой проблемы.

Прикрепленные миниатюры
Прикрепления: 0633381.png(580Kb)




Сообщение отредактировал liosha - Четверг, 11.09.2014, 18:28
 
exersizzeДата: Воскресенье, 14.09.2014, 11:28 | Сообщение # 2
Группа: Администраторы
Сообщений: 719

Статус: Offline
По AVRstudio я не спец, могу посоветовать только начать с одного светодиода, добиться правильной его работы и потом добавлять следующие по одному.

 
Форум » форумы » В разработке » Светодиоды не мигают или мигают неправильно (таймер ATMega8) (Странное поведение светодиодов при использовании таймера)
Страница 1 из 11
Поиск: