Files
aqhomecontrol/avr/devices/all
Martin Preuss 67be74d2ac avr: move timing control from ma_light to sk6812.
This allows for better control over the LED strip. We can now trigger the
LED strip externally (e.g. by setting a new RGBW value).
2026-03-24 23:13:28 +01:00
..
2025-04-29 00:35:45 +02:00
2025-10-07 00:27:41 +02:00
2026-03-20 22:28:09 +01:00
2026-03-16 21:38:01 +01:00
2026-03-17 00:01:23 +01:00
2025-01-16 17:08:15 +01:00

Functions

AqHome knows these driver/module/app functions:
- INIT: initialize the driver
- RUN:  called on every loop
- MSGRECEIVED: called whenever a message has been received
- EVERY100MS:  called every 100ms (the system timer tick)
- EVERY1S:     called every second
- EVERY1M:     called every minute
- EVERY1H:     called every hour
- EVERY1D:     called every day


Modules and Apps

Modules are lowlevel drivers for specific hardware (like for the environment
sensor SI7021).

Apps on the other hand are kind of sub-programs running in parallel on the
microprocessor. E.g. there are apps for networking, motion-activated-light, statistics
reporting and sensor value reporting.


Modules

If your driver/module implements those functions they need to be added
to the appropriate files:
- include instructions to the file "modules_include.asm"
- calls to INIT function to        "modules_init.asm"
- calls to RUN function to         "modules_run.asm"
- calls to MSGRECEIVED function to "modules_msg.asm"
- calls to EVERY100MS function to  "modules_100ms.asm"
- calls to EVERY1S function to     "modules_1s.asm"
- calls to EVERY1M function to     "modules_1m.asm"
- calls to EVERY1H function to     "modules_1h.asm"
- calls to EVERY1D function to     "modules_1d.asm"

Only implemented routine calls need to be added, e.g. if a driver doesn't need
the RUN functionality it doesn't need to be implemented.


Apps

The same rules apply to apps. The only difference is the prefix of the files calls and
include directives need to be added (using "apps_xxx.asm" instead of "modules_xxx.asm").