Atmega8, не пойму по даташиту
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
Здравствуйте, извините за банальный вопрос, у Atmega8 есть предделитель тактовой частоты(которого можно изменять, например я установил битами конфиг. внутренный генератор на 8МГц, я могу предделителем ее уменьшить??).Просто розбираюсь в чужой проге и не пойму как там реализована задержка.
- Реклама
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
Нет .. Частота тактового генератора устанавливается только FUSE-битами.Twen писал(а):... например я установил битами конфиг. внутренный генератор на 8МГц, я могу предделителем ее уменьшить??
На таймерах есть предделитель - возможные значения : 1 (т.е. без деления) , 8 , 64 , 256, 1024 .
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26
Как можно обьяснить задержку,если fтакт=8МГц
delay1us: ; #
; задержка в 1 микросекунду (максимально достижимой точности!!!) #
; учитывается длительность RCALL и RET #
; НЕ ДОЛЖНА ИСПОЛЬЗОВАТЬ НИ ОДНОГО РЕГИСТРА !!!! #
; для низкой тактовой частоты, возможно, придется заменить на макрос из NOP-ов #
nop ; #
ret ;
delay1us: ; #
; задержка в 1 микросекунду (максимально достижимой точности!!!) #
; учитывается длительность RCALL и RET #
; НЕ ДОЛЖНА ИСПОЛЬЗОВАТЬ НИ ОДНОГО РЕГИСТРА !!!! #
; для низкой тактовой частоты, возможно, придется заменить на макрос из NOP-ов #
nop ; #
ret ;
предделителем делиш частоту для таимеров.(помотри блок схему)
КОД
ldi Temp1,0b00000011
out Tccr1b,Temp1 ;тактовый сигнал /64
0b00000001=1 0b00000010=8 0b00000011=64 0b00000100=256 0b00000101=1024
выложил бы код delay а то искать (ХЗ)
КОД
ldi Temp1,0b00000011
out Tccr1b,Temp1 ;тактовый сигнал /64
0b00000001=1 0b00000010=8 0b00000011=64 0b00000100=256 0b00000101=1024
выложил бы код delay а то искать (ХЗ)
Чем больше думаеш, тем дольше уснуть не можеш...
- Реклама
- Сообщения: 152
- Зарегистрирован: Чт апр 09, 2009 00:25:26


