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