avr: allow for adjustable timing in simple LED module.
This commit is contained in:
@@ -15,6 +15,8 @@
|
|||||||
.dseg
|
.dseg
|
||||||
|
|
||||||
ledSimpleTimer: .byte 1
|
ledSimpleTimer: .byte 1
|
||||||
|
ledSimpleOnTime: .byte 1
|
||||||
|
ledSimpleOffTime: .byte 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -40,20 +42,15 @@ LED_SIMPLE_BEGIN:
|
|||||||
LedSimple_Init:
|
LedSimple_Init:
|
||||||
sbi LED_SIMPLE_DDR, LED_SIMPLE_PINNUM ; out
|
sbi LED_SIMPLE_DDR, LED_SIMPLE_PINNUM ; out
|
||||||
cbi LED_SIMPLE_PORT, LED_SIMPLE_PINNUM ; on
|
cbi LED_SIMPLE_PORT, LED_SIMPLE_PINNUM ; on
|
||||||
ldi r16, LED_SIMPLE_ONTIME
|
rcall LedSimple_SetDefaultTiming ; (R16)
|
||||||
sts ledSimpleTimer, r16
|
|
||||||
sec
|
sec
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; LedSimple_Every100ms
|
; @routine LedSimple_Every100ms @global
|
||||||
;
|
;
|
||||||
; IN:
|
; @clobbers r16
|
||||||
; - nothing
|
|
||||||
; OUT:
|
|
||||||
; - nothing
|
|
||||||
; USED:
|
|
||||||
|
|
||||||
LedSimple_Every100ms:
|
LedSimple_Every100ms:
|
||||||
lds r16, ledSimpleTimer
|
lds r16, ledSimpleTimer
|
||||||
@@ -65,14 +62,53 @@ LedSimple_Every100ms_zero:
|
|||||||
rjmp LedSimple_Tick_isOff
|
rjmp LedSimple_Tick_isOff
|
||||||
; is on
|
; is on
|
||||||
sbi LED_SIMPLE_PORT, LED_SIMPLE_PINNUM ; off
|
sbi LED_SIMPLE_PORT, LED_SIMPLE_PINNUM ; off
|
||||||
ldi r16, LED_SIMPLE_OFFTIME
|
lds r16, ledSimpleOffTime
|
||||||
rjmp LedSimple_Every100ms_setTimer
|
rjmp LedSimple_Every100ms_setTimer
|
||||||
LedSimple_Tick_isOff:
|
LedSimple_Tick_isOff:
|
||||||
cbi LED_SIMPLE_PORT, LED_SIMPLE_PINNUM ; on
|
cbi LED_SIMPLE_PORT, LED_SIMPLE_PINNUM ; on
|
||||||
ldi r16, LED_SIMPLE_ONTIME
|
lds r16, ledSimpleOnTime
|
||||||
LedSimple_Every100ms_setTimer:
|
LedSimple_Every100ms_setTimer:
|
||||||
sts ledSimpleTimer, r16
|
sts ledSimpleTimer, r16
|
||||||
ret
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine LedSimple_SetDefaultTiming @global
|
||||||
|
;
|
||||||
|
; Set default timing for LED.
|
||||||
|
; @clobbers r16
|
||||||
|
;
|
||||||
|
|
||||||
|
LedSimple_SetDefaultTiming:
|
||||||
|
ldi r16, LED_SIMPLE_ONTIME
|
||||||
|
sts ledSimpleOnTime, r16
|
||||||
|
sts ledSimpleTimer, r16
|
||||||
|
ldi r16, LED_SIMPLE_OFFTIME
|
||||||
|
sts ledSimpleOffTime, r16
|
||||||
|
cbi LED_SIMPLE_PORT, LED_SIMPLE_PINNUM ; on
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine LedSimple_SetFastTiming @global
|
||||||
|
;
|
||||||
|
; Set fast blinking timing for LED. Switch LED on.
|
||||||
|
; @clobbers r16
|
||||||
|
;
|
||||||
|
|
||||||
|
LedSimple_SetFastTiming:
|
||||||
|
ldi r16, 5
|
||||||
|
sts ledSimpleOnTime, r16
|
||||||
|
sts ledSimpleTimer, r16
|
||||||
|
ldi r16, 3
|
||||||
|
sts ledSimpleOffTime, r16
|
||||||
|
cbi LED_SIMPLE_PORT, LED_SIMPLE_PINNUM ; on
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user