tcrt1000: decreased limit from 170 to 100
This commit is contained in:
@@ -10,7 +10,8 @@
|
|||||||
|
|
||||||
|
|
||||||
.equ TCRT1K_INTERVAL = 7
|
.equ TCRT1K_INTERVAL = 7
|
||||||
.equ TCRT1K_LIMIT = 170
|
;.equ TCRT1K_LIMIT = 170
|
||||||
|
.equ TCRT1K_LIMIT = 100
|
||||||
|
|
||||||
.equ TCRT1K_FLAGS_VALID_BIT = 7
|
.equ TCRT1K_FLAGS_VALID_BIT = 7
|
||||||
.equ TCRT1K_FLAGS_VALUE_BIT = 0
|
.equ TCRT1K_FLAGS_VALUE_BIT = 0
|
||||||
@@ -24,6 +25,7 @@
|
|||||||
tcrt1kDataBegin:
|
tcrt1kDataBegin:
|
||||||
tcrt1kTimer: .byte 1
|
tcrt1kTimer: .byte 1
|
||||||
tcrt1kFlags: .byte 1
|
tcrt1kFlags: .byte 1
|
||||||
|
tcrt1kLastValue: .byte 1
|
||||||
tcrt1kDataEnd:
|
tcrt1kDataEnd:
|
||||||
|
|
||||||
|
|
||||||
@@ -96,24 +98,25 @@ TCRT1K_Every100ms_ledOn:
|
|||||||
sbi TCRT1K_LED_PORT, TCRT1K_LED_PIN ; LED on
|
sbi TCRT1K_LED_PORT, TCRT1K_LED_PIN ; LED on
|
||||||
ret
|
ret
|
||||||
TCRT1K_Every100ms_startMeasure:
|
TCRT1K_Every100ms_startMeasure:
|
||||||
sbi ADCSRA, ADSC ; start conversion
|
sbi ADCSRA, ADSC ; start conversion
|
||||||
ret
|
ret
|
||||||
TCRT1K_Every100ms_readValue:
|
TCRT1K_Every100ms_readValue:
|
||||||
sbic ADCSRA, ADSC
|
sbic ADCSRA, ADSC
|
||||||
ret ; return if bit still set, leave tcrt1kTimer at "1"
|
ret ; return if bit still set, leave tcrt1kTimer at "1"
|
||||||
; conversion complete, read value
|
; conversion complete, read value
|
||||||
ldi r16, TCRT1K_INTERVAL ; restart timer
|
ldi r16, TCRT1K_INTERVAL ; restart timer
|
||||||
sts tcrt1kTimer, r16
|
sts tcrt1kTimer, r16
|
||||||
in r16, ADCH ; read value from ADC
|
in r16, ADCH ; read value from ADC
|
||||||
cbi TCRT1K_LED_PORT, TCRT1K_LED_PIN ; LED off
|
sts tcrt1kLastValue, r16
|
||||||
|
cbi TCRT1K_LED_PORT, TCRT1K_LED_PIN ; LED off
|
||||||
; convert to 1/0
|
; convert to 1/0
|
||||||
lds r17, tcrt1kFlags
|
lds r17, tcrt1kFlags
|
||||||
cbr r17, (1<<TCRT1K_FLAGS_VALUE_BIT)
|
cbr r17, (1<<TCRT1K_FLAGS_VALUE_BIT) ; clear value bit
|
||||||
cpi r16, TCRT1K_LIMIT
|
cpi r16, TCRT1K_LIMIT ; ADC value < LIMIT?
|
||||||
brcs TCRT1K_Every100ms_valueSet
|
brcs TCRT1K_Every100ms_valueSet ; yes: keep value bit zero
|
||||||
sbr r17, (1<<TCRT1K_FLAGS_VALUE_BIT)
|
sbr r17, (1<<TCRT1K_FLAGS_VALUE_BIT) ; no: set value bit
|
||||||
TCRT1K_Every100ms_valueSet:
|
TCRT1K_Every100ms_valueSet:
|
||||||
sbr r17, (1<<TCRT1K_FLAGS_VALID_BIT)
|
sbr r17, (1<<TCRT1K_FLAGS_VALID_BIT) ; set valid bit
|
||||||
sts tcrt1kFlags, r17
|
sts tcrt1kFlags, r17
|
||||||
ret
|
ret
|
||||||
; @end
|
; @end
|
||||||
|
|||||||
Reference in New Issue
Block a user