Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2011, 20:48   #11
Mr_Gutsy
Новичок
Джуниор
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию

Похоже в этом и был косяк - забыл исправить двойку в вычитании. Ну я дебил
Mr_Gutsy вне форума Ответить с цитированием
Старый 10.05.2011, 21:07   #12
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию

Цитата:
Должно быть
subi C1,1;
sbci C2,0;
sbci C3,0;

В нашей методички написали:
"Итак, чтобы получить 8000000 тактов нужно записать в регистры С1-С3 число 8000000/5, то есть 1600000 или $186A00. Это даст интервал в 1 секунду."
Что не так?
теперь всё так при частоте 8Мгц вы получите задержку примерно в 1с.
Цитата:
Похоже в этом и был косяк - забыл исправить двойку в вычитании
А вы, что так и прошивали?

Последний раз редактировалось С.М.С; 10.05.2011 в 21:14.
С.М.С вне форума Ответить с цитированием
Старый 10.05.2011, 21:18   #13
Mr_Gutsy
Новичок
Джуниор
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию

Цитата:
А вы, что так и прошивали?
Ну похоже, да. Еще давным давно я тестировал на симуляторе - для скорости написал -2, исправить забыл. Да, это оно. Спасибо за помощь!
Mr_Gutsy вне форума Ответить с цитированием
Старый 10.05.2011, 21:23   #14
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию

Да, и ещё ваши коэффициенты будут работать, только для первого диода остальные же будут зажигаться через 10,5 секунд, так как после обнуления в С1,С2 и С3 будут записаны 255
С.М.С вне форума Ответить с цитированием
Старый 10.05.2011, 21:29   #15
Mr_Gutsy
Новичок
Джуниор
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию

А что тогда нужно сделать для равномерного перехода?
Mr_Gutsy вне форума Ответить с цитированием
Старый 10.05.2011, 21:34   #16
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию

перед каждым вызовом процедуры "delay:" обновлять коэффициенты. Или сделать так:

Код:
delay:
ldi C1,$60;
ldi C2,$E3;
ldi C3,$16;
delay1:
in r24,Sreg
subi C1,1; 
sbci C2,0;
sbci C3,0;
brcc delay1;
out SREG,r24;
ret;
И тогда обновление в процедуре main не нужно.

Последний раз редактировалось С.М.С; 10.05.2011 в 21:38.
С.М.С вне форума Ответить с цитированием
Старый 10.05.2011, 21:36   #17
Mr_Gutsy
Новичок
Джуниор
 
Регистрация: 10.05.2011
Сообщений: 10
По умолчанию

Да, логично. Ещё раз спасибо!
Mr_Gutsy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AVR ATmega 128: почему не происходит переход? Blondy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 06.05.2011 01:28
Индикация для плеера Сергей Михайлович Фриланс 2 09.02.2011 09:01
надо программу на Atmega sers88 Помощь студентам 6 26.09.2010 16:28
Atmega AT90CAN128 Требуется программист Simok Фриланс 3 31.03.2010 12:29
Нужна помощь знающих написания для Atmega lexaalt Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 28.05.2009 13:05