; *************************************************************************** ; copyright : (C) 2026 by Martin Preuss ; email : martin@libchipcard.de ; ; *************************************************************************** ; * This file is part of the project "AqHome". * ; * Please see toplevel file COPYING of that project for license details. * ; *************************************************************************** #ifndef AVR_MOD_COM2WROUTER_ISR_ASM #define AVR_MOD_COM2WROUTER_ISR_ASM ; *************************************************************************** ; code .cseg ; --------------------------------------------------------------------------- ; @routine COM2WR_Router_PinChangeISR @global @isr ; ; @clobbers none COM2WR_Router_PinChangeISR: push r15 inr r15, SREG push r16 push r17 push r18 inr r16, COM_CLK_INPUT inr r17, COM_DATA_INPUT lds r18, com2wAllCurrentPinMask or r16, r18 ; preset ports marked as sending with ones lds r18, com2wAllLastClock sts com2wAllLastClock, r16 eor r18, r16 ; check for clock changes breq COM2WR_Router_PinChangeISR_done push r19 push xl push xh bigcall COM2WR_Ringbuffer_WriteWord ; (xl, xh, r18, r19) pop xh pop xl pop r19 COM2WR_Router_PinChangeISR_done: pop r18 pop r17 pop r16 outr SREG, r15 pop r15 reti ; @end #endif ; AVR_MOD_COM2WROUTER_ISR_ASM