; *************************************************************************** ; copyright : (C) 2025 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. * ; *************************************************************************** ; *************************************************************************** ; defines .equ FILTER_KEEPUP_OFFS_TIMER = 0 .equ FILTER_KEEPUP_OFFS_RESTARTVALUE = 1 .equ FILTER_KEEPUP_DATA_SIZE = 2 ; *************************************************************************** ; code .cseg ; --------------------------------------------------------------------------- ; @routine FilterKeepUp_Init @global ; ; @param Y pointer to filter data ; @clobbers r16 FilterKeepUp_Init: clr r16 std Y+FILTER_KEEPUP_OFFS_TIMER, r16 ret ; @end ; --------------------------------------------------------------------------- ; @routine FilterKeepUp_Fini @global ; ; @param Y pointer to filter data FilterKeepUp_Fini: ; nothing to do ret ; @end ; --------------------------------------------------------------------------- ; @routine FilterKeepUp_GetValue @global ; ; @param Y pointer to filter data ; @return R16 value ; @clobbers none FilterKeepUp_GetValue: ldd r16, Y+FILTER_KEEPUP_OFFS_TIMER tst r16 breq FilterKeepUp_GetValue_end ldi r16, 1 FilterKeepUp_GetValue_end: ret ; @end ; --------------------------------------------------------------------------- ; @routine FilterKeepUp_SetValue @global ; ; @param Y pointer to filter data ; @param R16 value ; @clobbers r17 FilterKeepUp_SetValue: tst r16 breq FilterKeepUp_SetValue_end ldd r17, Y+FILTER_KEEPUP_OFFS_RESTARTVALUE std Y+FILTER_KEEPUP_OFFS_TIMER, r17 FilterKeepUp_SetValue_end: ret ; @end ; --------------------------------------------------------------------------- ; @routine FilterKeepUp_Every100ms @global ; ; @param Y pointer to filter data ; @clobbers r16 FilterKeepUp_Every100ms: ldd r16, Y+FILTER_KEEPUP_OFFS_TIMER tst r16 breq FilterKeepUp_Every100ms_end dec r16 std Y+FILTER_KEEPUP_OFFS_TIMER, r16 FilterKeepUp_Every100ms_end: ret ; @end