avr: added devices, more work on modules.

This commit is contained in:
Martin Preuss
2024-12-15 18:20:54 +01:00
parent c3fd458769
commit 4dc6031d03
61 changed files with 4758 additions and 184 deletions

View File

@@ -190,7 +190,7 @@ CCS811_OnTimer_measure:
lds r16, ccs811ResponseData+4
andi r16, (1<<CCS811_STATUS_DATAREADY_BIT)
; breq CCS811_OnTimer_ret
breq CCS811_OnTimer_storetimerret
breq CCS811_OnTimer_storetimerret ; jmp if data not ready
lds r16, ccs811Flags
ori r16, CCS811_FLAGS_VALIDDATA
sts ccs811Flags, r16
@@ -421,7 +421,6 @@ ccs811SendDebug:
ccs811SendCo2:
ldi r16, 0xff ; destination address
ldi r17, VALUE_ID_CO2 ; value id
ldi r22, AQHOME_VALUETYPE_CO2
lds r18, ccs811ResponseData+1 ; value
@@ -431,7 +430,6 @@ ccs811SendCo2:
ccs811SendTvoc:
ldi r16, 0xff ; destination address
ldi r17, VALUE_ID_TVOC ; value id
ldi r22, AQHOME_VALUETYPE_TVOC
lds r18, ccs811ResponseData+3 ; value
@@ -441,6 +439,14 @@ ccs811SendTvoc:
ccs811SendAny:
mov r16, r18 ; check for FF FF
and r16, r19
inc r16
brne ccs811SendAny_send ; send only if data is not FFFF
clc
ret
ccs811SendAny_send:
ldi r16, 0xff ; destination address
ldi r20, 1
clr r21
ldi xl, LOW(com2SendBuffer)
@@ -464,70 +470,6 @@ ccs811WaitMs_loop2:
#if 0
; ---------------------------------------------------------------------------
; ccs811ReadFirmwareRevision
;
; Expects interrupts being disabled!
; Currently doesn't work (my CCS811 doesn't accept the command).
;
; IN:
; - nothing
; OUT:
; - CFLAG: set if okay, clear on error
; - R16: firmware revision (0xff: version 1.0, 0x20: version 2.0)
; USED:
ccs811ReadFirmwareRevision:
rcall twiStart
ldi r16, (CCS811_ADDR*2) ; write access
rcall twiSendByteExpectAck
brcc ccs811ReadFirmwareRevision_error1
ldi r16, 0x84
rcall twiSendByteExpectAck
brcc ccs811ReadFirmwareRevision_error2
ldi r16, 0xb8
rcall twiSendByteExpectAck
brcc ccs811ReadFirmwareRevision_error3
rcall twiRestart
ldi r16, (CCS811_ADDR*2)+1 ; read access
rcall twiSendByteExpectAck
brcc ccs811ReadFirmwareRevision_error4
rcall twiReceiveByte ; don't send ACK
brcc ccs811ReadFirmwareRevision_error5
rcall twiStop
sec
ret
ccs811ReadFirmwareRevision_error1:
ldi r16, 1
rcall ccs811SetError
rjmp ccs811ReadFirmwareRevision_error
ccs811ReadFirmwareRevision_error2:
ldi r16, 2
rcall ccs811SetError
rjmp ccs811ReadFirmwareRevision_error
ccs811ReadFirmwareRevision_error3:
ldi r16, 3
rcall ccs811SetError
rjmp ccs811ReadFirmwareRevision_error
ccs811ReadFirmwareRevision_error4:
ldi r16, 4
rcall ccs811SetError
rjmp ccs811ReadFirmwareRevision_error
ccs811ReadFirmwareRevision_error5:
ldi r16, 5
rcall ccs811SetError
rjmp ccs811ReadFirmwareRevision_error
ccs811ReadFirmwareRevision_error:
rcall twiStop
clc
ret
#endif