From 800881998963169a711c30ea8a7dad283a9bac50 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Thu, 1 May 2025 00:53:29 +0200 Subject: [PATCH] avr: added apps and missing files. --- avr/apps/0BUILD | 2 + avr/apps/door/0BUILD | 15 ++++++ avr/apps/door/main.asm | 7 +-- avr/apps/motion/0BUILD | 15 ++++++ avr/apps/motion/main.asm | 7 +-- avr/apps/network/0BUILD | 16 ++++++ avr/apps/reportsensors/0BUILD | 16 ++++++ avr/apps/reportsensors/data.asm | 16 ++++++ avr/apps/reportsensors/main.asm | 95 +++++++++++++++++++++++++++++++++ avr/apps/stats/0BUILD | 16 ++++++ avr/apps/stats/data.asm | 16 ++++++ avr/apps/stats/main.asm | 81 ++++++++++++++++++++++++++++ 12 files changed, 296 insertions(+), 6 deletions(-) create mode 100644 avr/apps/door/0BUILD create mode 100644 avr/apps/motion/0BUILD create mode 100644 avr/apps/network/0BUILD create mode 100644 avr/apps/reportsensors/0BUILD create mode 100644 avr/apps/reportsensors/data.asm create mode 100644 avr/apps/reportsensors/main.asm create mode 100644 avr/apps/stats/0BUILD create mode 100644 avr/apps/stats/data.asm create mode 100644 avr/apps/stats/main.asm diff --git a/avr/apps/0BUILD b/avr/apps/0BUILD index 77e2158..5d3bd84 100644 --- a/avr/apps/0BUILD +++ b/avr/apps/0BUILD @@ -6,6 +6,8 @@ door motion network + reportsensors + stats diff --git a/avr/apps/door/0BUILD b/avr/apps/door/0BUILD new file mode 100644 index 0000000..593fe80 --- /dev/null +++ b/avr/apps/door/0BUILD @@ -0,0 +1,15 @@ + + + + + + + + + main.asm + + + + + + diff --git a/avr/apps/door/main.asm b/avr/apps/door/main.asm index b1e5802..ef0bb46 100644 --- a/avr/apps/door/main.asm +++ b/avr/apps/door/main.asm @@ -42,8 +42,9 @@ AppDoor_Init: ldi yl, LOW(appDoorKeepupData) ldi yh, HIGH(appDoorKeepupData) rcall FilterKeepUp_Init - ldi r16, APP_DOOR_KEEPUPTIME - std Y+FILTER_KEEPUP_OFFS_RESTARTVALUE, r16 + ldi r16, LOW(APP_DOOR_KEEPUPTIME) + ldi r17, HIGH(APP_DOOR_KEEPUPTIME) + rcall FilterKeepUp_SetRestartValue ldi yl, LOW(appDoorValSchedData) ldi yh, HIGH(appDoorValSchedData) @@ -106,7 +107,7 @@ appDoorSendValue: appDoorSendValue_send: ldi r17, VALUE_ID_TCRT1K ; VALUE ID ldi r22, AQHOME_VALUETYPE_DOOR ; VALUE TYPE - rjmp Main_Send8BitValue + rjmp Main_Send8BitValueReport ; @end diff --git a/avr/apps/motion/0BUILD b/avr/apps/motion/0BUILD new file mode 100644 index 0000000..593fe80 --- /dev/null +++ b/avr/apps/motion/0BUILD @@ -0,0 +1,15 @@ + + + + + + + + + main.asm + + + + + + diff --git a/avr/apps/motion/main.asm b/avr/apps/motion/main.asm index 3ae3294..0fd907e 100644 --- a/avr/apps/motion/main.asm +++ b/avr/apps/motion/main.asm @@ -41,8 +41,9 @@ AppMotion_Init: ldi yl, LOW(appMotionKeepupData) ldi yh, HIGH(appMotionKeepupData) rcall FilterKeepUp_Init - ldi r16, APP_MOTION_KEEPUPTIME - std Y+FILTER_KEEPUP_OFFS_RESTARTVALUE, r16 + ldi r16, LOW(APP_MOTION_KEEPUPTIME) + ldi r17, HIGH(APP_MOTION_KEEPUPTIME) + rcall FilterKeepUp_SetRestartValue ldi yl, LOW(appMotionValSchedData) ldi yh, HIGH(appMotionValSchedData) @@ -99,7 +100,7 @@ appMotionSendValue: ldi r17, VALUE_ID_MOTION ; VALUE ID ldi r22, AQHOME_VALUETYPE_MOTION ; VALUE TYPE - rjmp Main_Send8BitValue + rjmp Main_Send8BitValueReport ; @end diff --git a/avr/apps/network/0BUILD b/avr/apps/network/0BUILD new file mode 100644 index 0000000..b24616e --- /dev/null +++ b/avr/apps/network/0BUILD @@ -0,0 +1,16 @@ + + + + + + + + + main.asm + stats.asm + + + + + + diff --git a/avr/apps/reportsensors/0BUILD b/avr/apps/reportsensors/0BUILD new file mode 100644 index 0000000..41a6633 --- /dev/null +++ b/avr/apps/reportsensors/0BUILD @@ -0,0 +1,16 @@ + + + + + + + + + data.asm + main.asm + + + + + + diff --git a/avr/apps/reportsensors/data.asm b/avr/apps/reportsensors/data.asm new file mode 100644 index 0000000..1b0e290 --- /dev/null +++ b/avr/apps/reportsensors/data.asm @@ -0,0 +1,16 @@ +; *************************************************************************** +; 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. * +; *************************************************************************** + + + +.dseg + + +reportSensorTimer: .byte 1 ; seconds counter + diff --git a/avr/apps/reportsensors/main.asm b/avr/apps/reportsensors/main.asm new file mode 100644 index 0000000..a584b1a --- /dev/null +++ b/avr/apps/reportsensors/main.asm @@ -0,0 +1,95 @@ +; *************************************************************************** +; 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 APP_REPORT_SENSORS_INTERVAL_SECS = 60 + + + + + +; *************************************************************************** +; code + +.cseg + + +; --------------------------------------------------------------------------- +; @routine AppReportSensors_Init @global +; +; @clobbers r16 + +AppReportSensors_Init: + clr r16 + sts reportSensorTimer, r16 + sec + ret +; @end + + + +; --------------------------------------------------------------------------- +; @routine AppReportSensors_Fini @global +; + +AppReportSensors_Fini: + ; nothing to do + ret +; @end + + + +; --------------------------------------------------------------------------- +; @routine AppReportSensors_OnEverySecond @global +; + +AppReportSensors_OnEverySecond: + lds r16, reportSensorTimer + inc r16 + cpi r16, APP_REPORT_SENSORS_INTERVAL_SECS + brcs AppReportSensors_OnEverySecond_store + clr r16 +AppReportSensors_OnEverySecond_store: + sts reportSensorTimer, r16 +#ifdef MODULES_SI7021 + cpi r16, 1 + breq AppReportSensors_OnEverySecond_measureValue1 + cpi r16, 19 + breq AppReportSensors_OnEverySecond_measureValue2 + cpi r16, 39 + breq AppReportSensors_OnEverySecond_sendValue1 + cpi r16, 49 + breq AppReportSensors_OnEverySecond_sendValue2 +#endif +#ifdef MODULES_DS18B20 + cpi r16, 9 + breq AppReportSensors_OnEverySecond_sendValue3 +#endif + ret +#ifdef MODULES_SI7021 +AppReportSensors_OnEverySecond_measureValue1: + rjmp SI7021_MeasureTemp +AppReportSensors_OnEverySecond_measureValue2: + rjmp SI7021_MeasureHumidity +AppReportSensors_OnEverySecond_sendValue1: + rjmp SI7021_SendTemperature +AppReportSensors_OnEverySecond_sendValue2: + rjmp SI7021_SendHumidity +#endif +#ifdef MODULES_DS18B20 +AppReportSensors_OnEverySecond_sendValue3: + rjmp Ds18b20_SendTemperature +#endif +; @end + + + diff --git a/avr/apps/stats/0BUILD b/avr/apps/stats/0BUILD new file mode 100644 index 0000000..41a6633 --- /dev/null +++ b/avr/apps/stats/0BUILD @@ -0,0 +1,16 @@ + + + + + + + + + data.asm + main.asm + + + + + + diff --git a/avr/apps/stats/data.asm b/avr/apps/stats/data.asm new file mode 100644 index 0000000..8422a79 --- /dev/null +++ b/avr/apps/stats/data.asm @@ -0,0 +1,16 @@ +; *************************************************************************** +; 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. * +; *************************************************************************** + + + +.dseg + + +appStatsTimer: .byte 1 ; minutes counter + diff --git a/avr/apps/stats/main.asm b/avr/apps/stats/main.asm new file mode 100644 index 0000000..fb9bb75 --- /dev/null +++ b/avr/apps/stats/main.asm @@ -0,0 +1,81 @@ +; *************************************************************************** +; 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 APP_STATS_INTERVAL_MINS = 10 + + + + + +; *************************************************************************** +; code + +.cseg + + +; --------------------------------------------------------------------------- +; @routine AppStats_Init @global +; +; @clobbers r16 + +AppStats_Init: + clr r16 + sts appStatsTimer, r16 + sec + ret +; @end + + + +; --------------------------------------------------------------------------- +; @routine AppStats_Fini @global +; + +AppStats_Fini: + ; nothing to do + ret +; @end + + + +; --------------------------------------------------------------------------- +; @routine AppStats_OnEveryMinute @global +; + +AppStats_OnEveryMinute: + lds r16, appStatsTimer + inc r16 + cpi r16, APP_STATS_INTERVAL_MINS + brcs AppStats_OnEveryMinute_store + clr r16 +AppStats_OnEveryMinute_store: + sts appStatsTimer, r16 + ldi yl, LOW(netInterfaceData) + ldi yh, HIGH(netInterfaceData) + cpi r16, 1 + breq AppStats_OnEveryMinute_sendDevice + cpi r16, 2 + breq AppStats_OnEveryMinute_sendTxdStats + cpi r16, 3 + breq AppStats_OnEveryMinute_sendRxdStats + ret +AppStats_OnEveryMinute_sendTxdStats: + rjmp AppNetwork_SendTxdStats +AppStats_OnEveryMinute_sendRxdStats: + rjmp AppNetwork_SendRxdStats +AppStats_OnEveryMinute_sendDevice: + rjmp AppNetwork_SendDevice +; @end + + +