|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.05.2011, 17:57 | #1 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
AVR Atmega 128: Traffic light - как установить счетчик на таймер?
Добрый день!
Нужен добрый совет - в программе есть таймер, нужно чтобы он запускался подряд в одном случае 8 раз, в другом 4 раза. Граммотнее всего было бы свинтить 2 счетчика - один на 4 раза, другой на 8 раз. Я не знаю как это правильно написать. Или его возможно просто прописать несколькими rcall подряд? И вообще посмотрите, насколько программа написана - идея очень простая - это обычный светофор с таймером. Изначально горит зеленый, нажали кнопку - загорелся желтый (таймер на 4 раза), потом красный (таймер на 8 раз), потом опять желтый (таймер на 4 раза), и опять все вернулось к зеленому. Тестю пока на эмуляторе. Завтра сдавать в железе.... Поэтому конфигурация уже вся под железо - если был бы только эмулятор, я бы по-другому регистры порта настроила, так как я лучше понимаю))) Код:
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
22.05.2011, 20:08 | #2 |
Участник клуба
Регистрация: 29.12.2008
Сообщений: 1,598
|
1раз - это сколько в секундах? 0,5мс? И какая частота тактирования?
|
22.05.2011, 21:06 | #3 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Частота тактирования 4 MHz
Тогда получается таймер на 0,125 сек. Ну а нам надо на 0.5 сек и на 1 сек . Если я не ошибаюсь в расчетах.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Последний раз редактировалось Blondy; 22.05.2011 в 21:13. |
22.05.2011, 21:09 | #4 |
Участник клуба
Регистрация: 29.12.2008
Сообщений: 1,598
|
А обязательно делать 4 раза и 8 раз или всё таке можно сделать 0,5 и 1 секунд к примеру?
Последний раз редактировалось С.М.С; 22.05.2011 в 21:18. |
22.05.2011, 22:06 | #5 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Можно насколько угодно - конечно мне в секундах проще)) Но почему-то я стала думать, что в одном таймере не получится сделать полсекунды и 1 секунду. У нас же максимально 255 единиц можно задействовать. Хотя я думаю, для такого профи как Вы возможно все)))
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
22.05.2011, 23:42 | #6 |
Участник клуба
Регистрация: 29.12.2008
Сообщений: 1,598
|
Скажите куда у Вас кнопка включена?
|
22.05.2011, 23:56 | #7 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
по идее это должен быть первый (по счету) регистр порта В. то есть PB0
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
22.05.2011, 23:57 | #8 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Мой вариант. Работает по циклу 4с(жёлтый)-8с(красный)-4с(жёлтый).
Точность на самом деле не 1 сек, а 998 мс, т.е. есть погрешность. Код:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru Последний раз редактировалось Ulex; 23.05.2011 в 00:05. |
23.05.2011, 00:10 | #9 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Ага, спасибо. Через часик буду тестить.... И еще надо будет посмотреть в справочнике операторов то, что я не знаю. А то ведь мне ни за что не поверят, что это я))) Придется отбиваться чуть ли не ногами.
Если что-то будет не понятно, я спрошу. Премного Вас благодарю - Вы мой спаситель))
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
23.05.2011, 01:47 | #10 |
Участник клуба
Регистрация: 29.12.2008
Сообщений: 1,598
|
Опередили меня, ну да ладно вот ещё вариант. Изначально горит зелёный. После нажатия кнопки загорается оранжевый и горит 0,5 секунды. Затем загорается красный и горит 1секунду. Затем опять оранжевый горит 0,5 секунды. И зелённый. Дальше ожидается нажатие кнопки (низкий уровень PB0). Закорючки это русские буквы, а АВР студио будут нормальными.
Код:
Последний раз редактировалось С.М.С; 23.05.2011 в 01:50. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
AVR Atmega 128: сигнализация не срабатывает на ключи | Blondy | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 16 | 20.05.2011 12:29 |
AVR ATmega 128: почему не происходит переход? | Blondy | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 06.05.2011 01:28 |
Двоичный счетчик в AVR studio 4 | UKG | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 22.10.2010 17:48 |
MCS-51 таймер/счетчик | Steff-z | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 05.06.2009 23:15 |
Добавить инди в delphi 10 light, но как это зделать и где её взять не знаю | 100GRamm | Компоненты Delphi | 1 | 09.02.2009 13:38 |