Полная версия этой страницы:
ATtiny261 + Timer 0
ManCar
Jun 26 2008, 09:51
Не получается запустить на счет таймер 0 в ATTiny461. Перепробовал AVRStudio от 4.12 до 4.14 со всеми возможными сервиспаками. Тестовый код зашитый в чип также не дал результата:
Pdf перечитал уже не один раз, не пойму что не так. С таймером 1 все в порядке...
.include "tn461def.inc"
.def a = r16
;вектора используемых прерываний
rjmp Main
nop
nop
nop
nop
nop
rjmp IntTOV0
Main:
sei ;разрешаем прерывания
sbi DDRA,PA0 ;пин на выход
ldi a,0
out TCCR0A,a
ldi a,1
out TCCR0B,a ;пуск без делителя частоты
ldi a,(1<<TOIE0)
out TIMSK,a ;разрешить прерывание переполнения
;бесконечный цикл
loop:
rjmp loop
;обработчик прерывния переполнения таймера 0
IntTOV0:
sbi PortA,PA0
nop
nop
nop
cbi PortA,PA0
reti
Коль используете прерывания - не забывайте инициализировать стек!
ManCar
Jun 27 2008, 05:04
to Палыч
Вы совершенно правы, когда писал пример, совершенно случайно забыл вписать после метки Main следующие строчки кода:
ldi a,low(ramend)
out SPL,a
ldi a,high(ramend)
out SPH,a
но в данном случае ничего не меняется, поскольку прерывание наступить не может: Таймер 0 как не хотел работать, так и не работает, причем без видимых на то причин.
Александр Куличок
Jun 27 2008, 06:46
AVRStudio -> Help -> Simulator -> Known Issues -> Notes for ATTiny261/461/861:
Timer/Counter 0 and Timer/Counter 1 are not simulated.
The ADC noise reduction function is not supported. Setting the ADIF flag will not wake the CPU from sleep mode. The initial dummy conversion after enabling ADC is not simulated.
The Watchdog is not simulated.
В догонку: тут вот есть простая и понятная обучалка по таймеру, с примерами программ.
http://www.radiokot.ru/start/mcu_fpga/avr/11/
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.