| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
ATmega16 timer
13.08.2012, 18:30
|
|
|
Прохожий
Регистрация: 13.08.2012
Сообщений: 7
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
ATmega16 timer
Всем привет)
у меня есть такой вопрос, как можно сделать такую фигню на МК ATmega16 .. к порту А подключены 8 светодиодов, как сделать так чтобы первый светодиод мигал с частотой 1 Гц, второй 2 Гц, третий 3Гц ..... восьмой 8 Гц, знаю что это делается с помощью таймера а как ... незнаю
если нетрудно помогите кто написать такую прогу, чтобы я просто понял, что как ... можно и на 3 светодиода написать программу ...
пишу программи в CodeVisionAVR
|
|
|
|
Сказали "Спасибо" Андрей1
|
|
|
13.08.2012, 18:47
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: ATmega16 timer
Сообщение от Андрей1
|
такую фигню на МК ATmega16 ..
...мигал с частотой 1 Гц, второй 2 Гц, третий 3Гц .....
|
- То что вы пренебрежительно назвали фигней, на самом деле называется "постановка задачи".
- Термин "мигал" в постановках задач неприемлим. Это не технический термин. Мигают глазами. Нужно указывать время свечения и период повторения. Либо период и скважность свечения.
- Вы просите других сделать. Здесь не делают на заказ. Здесь помогают, если не получается. Вы что-то уже пробовали сами делать?
- Допустим, вам даже что-то там напишут. За следующим по сложности вы тоже будете обращаться с просьбой написать?
Не кажется вам, что путь познания должен быть несколько иным?
__________________
С уважением,
Vic / ut1wpr
Последний раз редактировалось ut1wpr; 13.08.2012 в 18:49.
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо ut1wpr за это сообщение:
|
|
|
13.08.2012, 19:04
|
|
|
Прохожий
Регистрация: 13.08.2012
Сообщений: 7
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: ATmega16 timer
я непрошу делать на заказ.)
просто пример такой не могу найти ...
частота первой светодиода - 1Гц, пол периода светодиод включен, пол выключен ..
частота второго светодиода 2Гц, пол периода светодиод включен, пол выключен ..
и третий светодиод, период частота 3Гц пол периода светодиод включен, пол выключен ..
сейчас прерывания учу ...
|
|
|
|
Сказали "Спасибо" Андрей1
|
|
|
13.08.2012, 20:27
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
|
Re: ATmega16 timer
Андрей1,
а мигать одним светодиодом пробовали? осциллограф есть?
писать не буду, да и не пишу в CodeVisionAVR, даю только пинки в нужном направлении.
1. рисуете временные диаграммы для ваших светодиодов с шагом 0.5с, составляете таблицу
2. программируете в МК timer1 (предделитель, регистры TCNT1L, TCNT1H, разрешаете прерывание от timer1 на 0.5с), настраиваете порт, организуете счетчик циклов, разрешаете прерывания
3. пишете процедуру прерывания (перезагрузка таймера, вывод в порт данных из переменной, установка флага подготовки данных к выводу)
4. основной цикл - кольцо с входом по флагу подготовки данных к выводу: вызываете адрес таблицы данных, суммируете со счетчиком, читаете таблицу и помещаете данные в переменную, инкрементируете и проверяете счетчик на превышение длины таблицы (больше - сбросить в 0), сбрасываете флаг.
решение лобовое, писал быстро, мог что-то пропустить. на асме пишется за 5мин. +2мин. отладка +3мин. прошивка и проверка (итого 10мин.) +вечность на созерцание
|
|
|
|
13.08.2012, 20:30
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,459
Сказал спасибо: 3,227
Сказали Спасибо 3,513 раз(а) в 2,394 сообщении(ях)
|
Re: ATmega16 timer
Исходники подобного примера (на ассемблере, правда) идут в составе STK500.
|
|
|
|
Сказали "Спасибо" ForcePoint
|
|
|
13.08.2012, 20:40
|
|
|
Прохожий
Регистрация: 13.08.2012
Сообщений: 7
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: ATmega16 timer
jump, спасибо)
в принципе на Си программа лекше должно быть
ассемблер я непотягну сейчас ...
Да, я мигал светодиодами ... вот теперь чего-то большего научиться хочу)
Посоветуйте какие тотариалы по програмирование AVR на CVAVR ..
Осциллографа нет сожалению ... (
|
|
|
|
Сказали "Спасибо" Андрей1
|
|
|
13.08.2012, 21:12
|
|
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: ATmega16 timer
Сообщение от Андрей1
|
я непрошу делать на заказ.)
просто пример такой не могу найти ...
частота первой светодиода - 1Гц, пол периода светодиод включен, пол выключен ..
частота второго светодиода 2Гц, пол периода светодиод включен, пол выключен ..
и третий светодиод, период частота 3Гц пол периода светодиод включен, пол выключен ..
сейчас прерывания учу ...
|
Поскольку сдвиг фаз неизвестен, то как вариант можно рассмотреть такой пример. Задача тянет на обычный сдвиговый регистр. В архиве есть исходник на Си (avr-gcc).
|
|
|
|
Сказали "Спасибо" mimuh64
|
|
|
13.08.2012, 21:41
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: ATmega16 timer
Сделать генератор на 0,5 Гц и по его прерыванию первый светодиод зажигать/гасить после каждого прерывания, второй - после каждого второго, третий - после каждого третьего и тд. То есть по прерыванию считать 7 чисел и инвертировать состояние выхода первого диода
|
|
|
|
14.08.2012, 15:46
|
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
1,2,3,4,5,6,7,8 - это частоты, а не периоды
Если частоты должны быть точно такими, то задача не решается.
|
|
|
|
14.08.2012, 15:59
|
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: ATmega16 timer
Сделать 1680Гц генератор на таймере ( Т = 595 мкс). Для частоты 8Гц изменять состояние выхода каждые 105 переполнений таймера, для 7Гц - каждые 120, для 6Гц - 140 и т.д.
|
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:30.
|
|