[an error occurred while processing this directive]
SOS! (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено LPBOY 30 октября 2005 г. 12:42

Написал программу.
Я предполагал, что при нажатии 2-й кнопки (считая с нуля) будет измеряться напряжение и выводиться на диоды с интервалом ~1 сек.


.include "m8535def.inc"

.org 0
rjmp RESET

.org ADCCaddr
rjmp interrupt

.MACRO output
com @1
out @0, @1
com @1
.ENDMACRO

RESET:
ldi r16,low(RAMEND)
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16

rcall init_ports
rcall init_adc

sei
MAIN:
rjmp MAIN

pdelay:

pdelay1:
ldi r17, 100
pdelay2:
ldi r18, 100
pdelay3:
dec r18
brne pdelay3
dec r17
brne pdelay2
dec r19
brne pdelay1
ret

init_adc:
push r16
ldi r16, (1 << ADEN)|(1 << ADIE)|(1 << ADFR)|(1 << ADPS0)|(1 << ADPS2)
out ADCSRA, r16
ldi r16, $02
out ADMUX, r16
sbi ADCSRA, ADSC
pop r16
ret

init_ports:
ldi r16, 0xFF
out DDRB, r16

clr r16
out DDRA, r16
out PORTA, r16
ret

interrupt:
in r20, ADCL
in r21, ADCH

output PORTB, r20
rcall pdelay
output PORTB, r21
rcall pdelay
ret


Но при запуске загораются все 8 диодов, а через ~1сек младшие 2, которые так и застывают а нажатие кнопок ни на что не влияет :(
Что я делаю не правильно? Спасибо.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru