avr: use 16bit for brightness (actually, ADC only presents 10 bit).
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
brightnessDataBegin:
|
brightnessDataBegin:
|
||||||
brightnessTimer: .byte 1
|
brightnessTimer: .byte 1
|
||||||
brightnessFlags: .byte 1
|
brightnessFlags: .byte 1
|
||||||
brightnessLastValue: .byte 1
|
brightnessLastValue: .byte 2
|
||||||
brightnessDataEnd:
|
brightnessDataEnd:
|
||||||
|
|
||||||
|
|
||||||
@@ -98,11 +98,8 @@ Brightness_Every100ms_readValue:
|
|||||||
sts brightnessTimer, r16
|
sts brightnessTimer, r16
|
||||||
in r16, ADCL
|
in r16, ADCL
|
||||||
in r17, ADCH ; read value from ADC
|
in r17, ADCH ; read value from ADC
|
||||||
tst r17
|
|
||||||
breq Brightness_Every100ms_storeValue
|
|
||||||
ldi r16, 0xff
|
|
||||||
Brightness_Every100ms_storeValue:
|
|
||||||
sts brightnessLastValue, r16
|
sts brightnessLastValue, r16
|
||||||
|
sts brightnessLastValue+1, r17
|
||||||
; convert to 1/0
|
; convert to 1/0
|
||||||
lds r17, brightnessFlags
|
lds r17, brightnessFlags
|
||||||
sbr r17, (1<<BRIGHTNESS_FLAGS_VALID_BIT) ; set valid bit
|
sbr r17, (1<<BRIGHTNESS_FLAGS_VALID_BIT) ; set valid bit
|
||||||
@@ -116,14 +113,15 @@ Brightness_Every100ms_storeValue:
|
|||||||
; @routine Brightness_GetValue @global
|
; @routine Brightness_GetValue @global
|
||||||
;
|
;
|
||||||
; @return CFLAG set if there is a value, cleared otherwise (standard api)
|
; @return CFLAG set if there is a value, cleared otherwise (standard api)
|
||||||
; @return R16 value
|
; @return R19:R18 value
|
||||||
; @clobbers R16
|
; @clobbers R16
|
||||||
|
|
||||||
Brightness_GetValue:
|
Brightness_GetValue:
|
||||||
lds r16, brightnessFlags
|
lds r16, brightnessFlags
|
||||||
sbrs r16, BRIGHTNESS_FLAGS_VALID_BIT
|
sbrs r16, BRIGHTNESS_FLAGS_VALID_BIT
|
||||||
rjmp Brightness_GetValue_retNc
|
rjmp Brightness_GetValue_retNc
|
||||||
lds r16, brightnessLastValue
|
lds r18, brightnessLastValue
|
||||||
|
lds r19, brightnessLastValue+1
|
||||||
sec
|
sec
|
||||||
ret
|
ret
|
||||||
Brightness_GetValue_retNc:
|
Brightness_GetValue_retNc:
|
||||||
|
|||||||
@@ -16,8 +16,6 @@
|
|||||||
Brightness_Send:
|
Brightness_Send:
|
||||||
rcall Brightness_GetValue
|
rcall Brightness_GetValue
|
||||||
brcc Brightness_Send_end
|
brcc Brightness_Send_end
|
||||||
mov r18, r16
|
|
||||||
clr r19
|
|
||||||
ldi r20, 1
|
ldi r20, 1
|
||||||
clr r21
|
clr r21
|
||||||
ldi r17, VALUE_ID_BRIGHTNESS ; VALUE ID
|
ldi r17, VALUE_ID_BRIGHTNESS ; VALUE ID
|
||||||
|
|||||||
Reference in New Issue
Block a user