com2w: added routine COM2W_CheckPort
to be used by common pin change interrupt handler in n32
This commit is contained in:
@@ -844,5 +844,31 @@ com2wPcintIsr_end:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine COM2W_CheckPort @global
|
||||||
|
;
|
||||||
|
; @param r16 port value at IRQ time (e.g. PINA)
|
||||||
|
; @param Y pointer to interface
|
||||||
|
; @clobbers: r16, r17, r18, r19, r20, r21, r22, r24, r25, X, Y
|
||||||
|
|
||||||
|
COM2W_CheckPort:
|
||||||
|
ldi yl, LOW(com2w_iface)
|
||||||
|
ldi yh, HIGH(com2w_iface)
|
||||||
|
ldd r17, Y+NET_IFACE_OFFS_LASTPORTVALUE
|
||||||
|
std Y+NET_IFACE_OFFS_LASTPORTVALUE, r16
|
||||||
|
mov r18, r17
|
||||||
|
eor r18, r16 ; changed bits=1
|
||||||
|
com r18 ; complement: changed bits=0
|
||||||
|
or r18, r16 ; only bits are 0 which have just changed to 0
|
||||||
|
sbrs r18, COM_CLK_PIN
|
||||||
|
rjmp COM2W_CheckPort_end
|
||||||
|
; CLK just changed to 0, read packet
|
||||||
|
rcall com2wReceiveNextPkg ; (R16, R17, R18, R19, R20, R21, R22, R24, R25, X)
|
||||||
|
COM2W_CheckPort_end:
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif ; AVR_MODULES_COM2W_COM2W_H
|
#endif ; AVR_MODULES_COM2W_COM2W_H
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user