[an error occurred while processing this directive]
|
Написал программу.
Я предполагал, что при нажатии 2-й кнопки (считая с нуля) будет измеряться напряжение и выводиться на диоды с интервалом ~1 сек.
.include "m8535def.inc".org 0
rjmp RESET.org ADCCaddr
rjmp interrupt.MACRO output
com @1
out @0, @1
com @1
.ENDMACRORESET:
ldi r16,low(RAMEND)
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16rcall 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, r16clr 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
E-mail: info@telesys.ru