Делимся опытом Наступив на грабли - сообщи другим! Обмен опытом разработки и ремонта электронных устройств. |
09.05.2006, 18:33
|
|
Прохожий
Регистрация: 23.03.2006
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Помогите с заданием!!!!!
Добрый день!!!!
Я учусь работать с микроконтроллером семейства AVR Atmega 8515. Необходимо, чтобы светодиод мигал сначала медленно, потом быстрее, быстрее, потом опять медленнее. подскажите, пожалуйста, как этого добиться!!! Я работаю с программкой AVRStudio. Заранее всем огромное спасибо!!!!
|
|
|
|
11.05.2006, 20:11
|
|
Прописка
Регистрация: 02.05.2006
Сообщений: 171
Сказал спасибо: 97
Сказали Спасибо 43 раз(а) в 20 сообщении(ях)
|
Тебе неясно с алгоритмом или же как его
всунуть в АВР Студио?
|
|
|
|
12.05.2006, 00:04
|
|
Частый гость
Регистрация: 11.05.2006
Сообщений: 37
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Я обычно пишу прошивки для МК на Ассемблере. В данном случае вижу множество способов. Во-первых, нужно оределиться с алгоритмом, а также с тем, будут ли использоваться встроенные таймеры. Если да - вопрос решается просто.
|
|
|
|
17.05.2006, 00:12
|
|
Прохожий
Регистрация: 23.03.2006
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Прошу прощения, я отъезжал на некоторое время!!!!
В частности мне не ясен именно алгоритм, как добиться того, чтобы светодиод мигал в дпнной последовательности, а синтаксис языка это дело второстепенное!!!!
|
|
|
|
17.05.2006, 01:42
|
|
Частый гость
Регистрация: 02.05.2006
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Расписать включения-выключения пошагово, можно в виде блок-схемы. Затем перевести полученную последовательность в программный код.
|
|
|
|
17.05.2006, 13:14
|
|
Частый гость
Регистрация: 07.10.2005
Сообщений: 39
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Я так понимаю тут можно (не единственный вариант) использовать таймер по совпадению. Записать максимальное число в OCRL и OCRН и после каждого прерывания сначала декрементировать а потом инкриментировать (сделать каждый раз проверку). И в прерывании зажигать порт или тухнуть. Думаю что так!
|
|
|
|
21.05.2006, 16:02
|
|
Прописка
Регистрация: 02.05.2006
Сообщений: 171
Сказал спасибо: 97
Сказали Спасибо 43 раз(а) в 20 сообщении(ях)
|
Я с АВРами неимею дел,но думаю,что можно сделать так:
создаём подпрограмму задержки с наименьшим необходимым временем и вызываем её столько раз (в каждом моменте) сколько нужно.
Грубо говоря,командуем:
1.зажечь и 10 раз вызвать подпрограмму задержки,
2.если действительно задержка была вызвана 10 раз -
погасить,
3.10 раз вызвать подпрограмму задержки,
4.если действительно задержка была вызвана 10 раз -
зажечь...
Далее задержку для погашенного состояния вызываем всё меньшее число раз пока глаза могут замечать моргание и с этого момента начинаем обратно увеличивать число вызовов задержек пока оно нестанет
совсем близким к 1-ому пункту. Командуем вернуться к
1-ому пункту (т.е. начинаем всё с начала).
Знай,что есть программы, типа Бейсик,очень облегчающих иногда жизнь програмиста (особенно начинающего).
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:41.
|
|