.include "m8535def.inc"
.def tmp = R16
.org 0 rjmp Init .org 14 rjmp ADC_Comp
Init: ; ldi r16, high(RAMEND) out SPH, r16 ldi r16, low(RAMEND) out SPL, r16 ; ldi tmp, 0b00001000 out DDRB, tmp
out PORTB, tmp
ldi tmp, 0b10110000 out DDRD, tmp
out PORTD, tmp
ldi tmp, 0b01100010 out TCCR0, tmp
ldi tmp, 254 out OCR0, tmp
ldi tmp, 0b10100001 out TCCR1A, tmp
ldi tmp, 0b00000010 out TCCR1B, tmp
ldi tmp, 254 out OCR1AH, R7 out OCR1AL, tmp
ldi tmp, 0b011100011 out TCCR2, tmp
ldi tmp, 0 out ASSR, tmp
ldi tmp, 254 out OCR2, tmp
ldi tmp, 0b00000000 out SFIOR, tmp ; ldi tmp, 0b01100000 out ADMUX, tmp
ldi tmp, 0b11101100 out ADCSRA, tmp ; sei
Loop: nop nop nop nop rjmp Loop
ADC_Comp: ldi tmp, 1 out OCR0, tmp reti
in tmp, ADCH out OCR0, tmp
ldi tmp, 0b00100000 out ADMUX, tmp
ldi tmp, 0b11011111 out ADCSRA, tmp
reti
in tmp, ADMUX andi tmp, 0b00011111
cpi tmp, 0 breq ChangeBlue
cpi tmp, 2 breq ChangeGreen
cpi tmp, 4 breq ChangeRed
ChangeBlue: in tmp, ADCH out OCR0, tmp
ldi tmp, 0b00100010 out ADMUX, tmp
ldi tmp, 0b11001111 out ADCSRA, tmp
reti
ChangeGreen: in tmp, ADCH out OCR1AH, R7 out OCR1AL, tmp
ldi tmp, 0b00100100 out ADMUX, tmp
ldi tmp, 0b11001111 out ADCSRA, tmp
reti
ChangeRed: in tmp, ADCH out OCR2, tmp
ldi tmp, 0b00100000 out ADMUX, tmp
ldi tmp, 0b11001111 out ADCSRA, tmp
reti