diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-07 17:21:29 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-07 17:21:29 +0800 |
| commit | 6a2b5fefeb8931ca886bcf99a8f983b13e545515 (patch) | |
| tree | b792d15fa60c6ff256e78800ed2ce58aab9a709d /lock/frnt.c | |
| parent | 6b9f251d75fde8064280973fd7ba968008581d73 (diff) | |
| download | smart-home-6a2b5fefeb8931ca886bcf99a8f983b13e545515.tar.gz | |
2-way radio comm.
Diffstat (limited to 'lock/frnt.c')
| -rw-r--r-- | lock/frnt.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lock/frnt.c b/lock/frnt.c index cef60f3..88ee614 100644 --- a/lock/frnt.c +++ b/lock/frnt.c @@ -1,7 +1,8 @@ -/* Door front, connected to the fingerprint scanner */ +/* Door front, connected to the fingerprint scanner */ #include <stdint.h> -#include <string.h> + +#include <avr/interrupt.h> #include <util/delay.h> #include "nrfm.h" @@ -21,6 +22,8 @@ static volatile int rxdr = 0; static inline void await_reply(void) { + uint8_t i; + radio_listen(); for (i = 0; i < 500 && rxdr == 0; i += 100) _delay_ms(100); @@ -28,7 +31,6 @@ static inline void await_reply(void) int main(void) { - uint8_t i; uint8_t rxaddr[ADDRLEN] = { 194, 178, 82 }; uint8_t txaddr[ADDRLEN] = { 194, 178, 83 }; @@ -43,6 +45,8 @@ int main(void) radio_init(rxaddr); radio_print_config(); + sei(); + for (;;) { _delay_ms(2000); /* todo: fingerprint check */ xor(KEY, SYN, msg, WDLEN); @@ -53,6 +57,7 @@ int main(void) msg[n] = '\0'; rxdr = 0; xor(KEY, msg, key, WDLEN); + // check btn press xor(key, LOCK, msg, WDLEN); radio_sendto(txaddr, msg, WDLEN); await_reply(); |
