я себе делал для кварца 14.74...
- Код: Выделить всё • Развернуть
CLOCK_init:
ldi tmp1, 0b11000011
sts OSC_XOSCCTRL, tmp1
ldi tmp1, 1<<OSC_XOSCEN_bp
sts OSC_CTRL, tmp1
wait_for_cystal_stable:
lds tmp1, OSC_STATUS
sbrs tmp1, OSC_XOSCRDY_bp
rjmp wait_for_cystal_stable
ldi tmp1, 0b11001000
sts OSC_PLLCTRL, tmp1
lds tmp1, OSC_CTRL
ori tmp1, 1<<OSC_PLLEN_bp
sts OSC_CTRL, tmp1
wait_for_PLL_stable:
lds tmp1, OSC_STATUS
sbrs tmp1, OSC_PLLRDY_bp
rjmp wait_for_PLL_stable
ldi tmp1, CCP_IOREG_gc
out CPU_CCP, tmp1
ldi tmp1, 0b00000011
sts CLK_PSCTRL, tmp1
ldi tmp1, CCP_IOREG_gc
out CPU_CCP, tmp1
ldi tmp1, 0b00000100
sts CLK_CTRL, tmp1
ret
внешний кварц, PLL х4 или х8, потом деление.. кароче на АЛУ у тебя будет 32 при квафрце 16..
могешь поковыряться в ДШ и изменить соответствующие значение загружаемые в регистры...
ну и tmp1 заменить на какой нить регистр... + наверна его еще и в стеке сохранить нада бы )