; ; pld for stily (and yvonne) ;) ; ; author: hackbard@hackdaworld.org ; .include "../include/m163def.inc" INIT: ldi r30,0x00 ; light status ldi r28,1 ; constants ldi r27,0x01; out DDRC,r27 ; select pin 0 as output rjmp LIGHT LIGHT: cpi r30,0x00 breq LIGHT_ON rjmp LIGHT_OFF LIGHT_ON: ldi r31,0 ; reset wait counter ldi r30,0x01 out PORTC,r30 rjmp WAIT LIGHT_OFF: ldi r31,0 ldi r30,0x00 out PORTC,r30 rjmp WAIT WAIT: ldi r29,0 ; reset inner wait counter add r31,r28 ; increment wait counter cpi r31,0xff ; after 255 steps breq LIGHT rjmp WAIT_MORE WAIT_MORE: ldi r25,0 ; reset inner inner wait counter add r29,r28 ; increment inner wait loop counter cpi r29,0xff ; goto first wait loop after 255 cycles breq WAIT rjmp WAIT_MORE_MORE WAIT_MORE_MORE: add r25,r28 ; inc inner inner wait counter cpi r25,0x05 ; goto wait_more loop breq WAIT_MORE rjmp WAIT_MORE_MORE