Таймер-счетчик

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 2
Зарегистрирован: Вс янв 27, 2019 16:41:07

Сообщение NikitaB »

Подскажите, в чем может быть ошибка? При сбросе по переполнению должен зажигаться светодиод. Светодиод подключен к выводу 0 порта B.

Код: Выделить всё

.include "m8def.inc"

 rjmp start

.org OVF1addr
rjmp TIM1_OVF

start:
 ldi R16,LOW(RAMEND)
 out SPL,R16
 ldi R16,HIGH(RAMEND)
 out SPH,R16

 ldi R17,0b00000001
 out DDRB,R17

 ldi R17,0b00000101
 out TCCR1B,R17

 ldi R17,0b10111110
 out TCNT1L,R17
 ldi R17,0b11110000
 out TCNT1H,R17

 ldi R17,0b00000100
 out TIMSK,R17

 sei

 main_loop:
  nop
 rjmp main_loop

TIM1_OVF:
sbi PORTB, 0

loop:
  nop
 rjmp loop
Реклама
akl
Друг Кота
Сообщения: 4450
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Есть порядок занесения 16 разрядных регистров.

Код: Выделить всё

 ldi R17,0b00000001
 out DDRB,R17

 ldi R17,0b11110000
 out TCNT1H,R17
 ldi R17,0b10111110
 out TCNT1L,R17

; ldi R17,0b10111110
; out TCNT1L,R17
; ldi R17,0b11110000
; out TCNT1H,R17

 ldi R17,0b00000101
 out TCCR1B,R17
Понятно, что программа учебная и зависает в прерывании. Но лучше так не делать.
Реклама
Ответить

Вернуться в «AVR»