; *************************************************************************** ; 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 AQH_AVR_MODULES_HOLDTIMER_MAIN_ASM #define AQH_AVR_MODULES_HOLDTIMER_MAIN_ASM ; --------------------------------------------------------------------------- ; @routine HTIM_Init @global ; ; @param Z pointer to timer data in FLASH (byte address for lpm!) ; @return Y pointer to data in RAM ; @clobbers r16, r18, r19 HTIM_Init: ; get RAM ptr lpm yl, Z+ lpm yh, Z sbiw zh:zl, 1 ; read default reload value adiw zh:zl, HTIM_FLASH_OFFS_RELOADVAL_LO lpm r18, Z+ lpm r19, Z sbiw zh:zl, (HTIM_FLASH_OFFS_RELOADVAL_LO+1) ; setup RAM data clr r16 std Y+HTIM_RAM_OFFS_FLAGS, r16 std Y+HTIM_RAM_OFFS_CURRVAL_LO, r16 std Y+HTIM_RAM_OFFS_CURRVAL_HI, r16 std Y+HTIM_RAM_OFFS_RELOAD_LO, r18 std Y+HTIM_RAM_OFFS_RELOAD_HI, r19 ret ; @end ; --------------------------------------------------------------------------- ; @routine HTIM_EnableActor @global ; ; @param Z pointer to timer data in FLASH (byte address for lpm!) ; @param Y pointer to data in RAM ; @clobbers R16 (any) HTIM_EnableActor: ldd r16, Y+HTIM_RAM_OFFS_FLAGS sbr r16, (1<