avr: added routine CPRO_ReadValue
This commit is contained in:
@@ -16,6 +16,35 @@
|
|||||||
.cseg
|
.cseg
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine CPRO_ReadValue @global
|
||||||
|
; Read a REPORT_VALUE/SET_VALUE message.
|
||||||
|
;
|
||||||
|
; @param X buffer to read from
|
||||||
|
; @return R17 value id
|
||||||
|
; @return R19:R18 value
|
||||||
|
; @return R21:R20 denom (e.g. 100, meaning value must be divided by 100)
|
||||||
|
; @return R22 source address
|
||||||
|
; @return R23 command
|
||||||
|
|
||||||
|
CPRO_ReadValue:
|
||||||
|
adiw xh:xl, 2
|
||||||
|
ld r23, X+ ; command
|
||||||
|
ld r22, X+ ; src address
|
||||||
|
adiw xh:xl, 6 ; skip uid, msg id
|
||||||
|
ld r17, X
|
||||||
|
adiw xh:xl, 2 ; skip value id, value type
|
||||||
|
ld r18, X+
|
||||||
|
ld r19, X+
|
||||||
|
ld r20, X+
|
||||||
|
ld r21, X+
|
||||||
|
sbiw xh:xl, 16 ; back to msg begin
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; @routine CPRO_WriteReportValue @global
|
; @routine CPRO_WriteReportValue @global
|
||||||
; Write a REPORT_VALUE packet.
|
; Write a REPORT_VALUE packet.
|
||||||
|
|||||||
Reference in New Issue
Block a user