corrected careless mistake
[my-code/atmel.git] / beginners / pld_stily.asm
1 ;
2 ; pld for stily (and yvonne) ;)
3 ;
4 ; author: hackbard@hackdaworld.org
5 ;
6
7 .include "../include/m163def.inc"
8
9 INIT:
10 ldi r30,0x00 ; light status
11 ldi r28,1 ; constants
12 ldi r17,0xff
13 ; adc
14 ;ldi r16,(1<<ADLAR) ; left adjusted, pin 0 connected to adc, a ref connected
15 ;out ADMUX,r16   
16 ;ldi r16,(1<<ADEN)|(1<<ADSC)|(1<<ADFR) ; enable, running mode, start first conv.
17 ;out ADCSR,r16
18 ; port c
19 ldi r27,0x01
20 out DDRC,r27 ; select pin 0 as output
21 rjmp LIGHT
22
23 LIGHT:
24 cpi r30,0x00
25 breq LIGHT_ON
26 rjmp LIGHT_OFF
27
28 LIGHT_ON:
29 ldi r31,0 ; reset wait counter
30 ldi r30,0x01
31 out PORTC,r30
32 ;ldi r17,0xff
33 rjmp WAIT
34
35 LIGHT_OFF:
36 ldi r31,0
37 ldi r30,0x00
38 out PORTC,r30
39 ;in r17,ADCH
40 rjmp WAIT
41
42 WAIT:
43 ldi r29,0 ; reset inner wait counter
44 add r31,r28 ; increment wait counter
45 cp r31,r17 ; after 255 steps
46 breq LIGHT
47 rjmp WAIT_MORE
48
49 WAIT_MORE:
50 ldi r25,0 ; reset inner inner wait counter
51 add r29,r28 ; increment inner wait loop counter
52 cpi r29,0xff ; goto first wait loop after 255 cycles
53 breq WAIT
54 rjmp WAIT_MORE_MORE
55
56 WAIT_MORE_MORE:
57 add r25,r28 ; inc inner inner wait counter
58 cpi r25,0x05 ; goto wait_more loop
59 breq WAIT_MORE
60 rjmp WAIT_MORE_MORE