VTG - V target - питание целевого МК (терминология Atmel)
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Примерно так:enq писал(а): ...для инициализации Таймера 2 в АтМеге16. Работа от внешнего кварца на tosc1/2 32.768 кГц. прерывание по переполнению 1 раз в сек.
Код: Выделить всё
sli
ldi R16, (1<<AS2) ; асинхронный режим
out ASSR, R16
ldi R16, 0x00
out TCNT2, R16
ldi R16, (1<<TOIE2) ; флаг разрешения прерывания по переполнению Т2
out TIMSK, R16
ldi R16, ((1<<CS22)|(1<<CS20)) ; 32768/128
out TCCR2, R16
seiНаверное, cli?ValBag писал(а):Примерно так:Код: Выделить всё
sli ...
Ставить ФНЧAlexeus писал(а):интересует как бороться схематикой с дребезгом.
Поставьте таймер типа NE555 в режиме одновибратора. Длительность импульса нужно сделать шире времени дребезга. Выход уже подавать на МКAlexeus писал(а):Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания....Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.
дайте угадаю: табличка в виде набора RJMP-ов? стопудово тут и косякenq писал(а):ValBag, спасибище, таймер завелся. НО: в протеусе по прерыванию выполняется не Timer2_OVF (с адреса $08), как в даташите, а Timer1_OVF, с адреса $010, который неизвестно откуда взялся. Таблица векторов скатана с даташита. Где косяк?
Код: Выделить всё
.cseg
.org 0
rjmp START
reti
reti
reti
rjmp TIMER2OVF
reti
reti
...
reti
...
START:
....
TIMER2OVF:
...Код: Выделить всё
.cseg
.org 0
rjmp START
.org 0x0008
rjmp TIMER2OVF
; и т. д.Код: Выделить всё
...
ldi R16, 0xFF
out TIFR, R16
...Код: Выделить всё
.cseg
.org 0
rjmp RESET ; Reset Handler
.org $008
rjmp TIMER2_OVF ; Timer2 OVERFLOW
.org $016
rjmp UART_RXC
Ну и лады... Кстати обозначения .def аналогичны. Так что зря я сокрушался.enq писал(а):Теперь тикает правильное прерывание.
не можно так, а НУЖНО ТОЛЬКО ТАК!!! и обязательно вместо адреса 0008 указывать СИМВОЛЬНУЮ КОНСТАНТУ соответствующего АДРЕСА ВЕКТОРА.ValBag писал(а):А можно так:Код: Выделить всё
.cseg .org 0 rjmp START .org 0x0008 rjmp TIMER2OVF ; и т. д.
Это Ваше личное мнение, а не бесспорная истина в последней инстанции. Лично я считаю, что так делать как раз неправильно, а правильно -- описывать все векторы подряд под конкретный тип контроллера. Впрочем, холиварить не собираюсь.ARV писал(а):не можно так, а НУЖНО ТОЛЬКО ТАК!!![/size][/color] и обязательно вместо адреса 0008 указывать СИМВОЛЬНУЮ КОНСТАНТУ соответствующего АДРЕСА ВЕКТОРА