diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-05-03 20:49:58 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-05-03 20:51:14 +0800 |
| commit | 7f5a4782dc5428884dd1b7163196ff7363fb15d7 (patch) | |
| tree | ce06905c0ce24222ea2536b1c1c63b8ddbd3b64f /fpm.c | |
| parent | d04b071a2bdfb1ed87c750416aab4424202353af (diff) | |
| download | avr-fpm-drivers-7f5a4782dc5428884dd1b7163196ff7363fb15d7.tar.gz | |
Update readme.
Diffstat (limited to 'fpm.c')
| -rw-r--r-- | fpm.c | 40 |
1 files changed, 10 insertions, 30 deletions
@@ -129,24 +129,6 @@ static inline uint8_t check_pwd(void) return buf[0] == OK; } -static inline void scan(uint8_t bufid) -{ - uint16_t n; - uint8_t buf[MAXPDLEN]; - - do { - buf[0] = 0x01; - send(0x01, buf, 1); - recv(buf, &n); - if (buf[0] == OK) { - buf[0] = 0x02; - buf[1] = bufid; - send(0x01, buf, 2); - recv(buf, &n); - } - } while (buf[0] != OK); -} - uint8_t fpm_init(void) { UBRR0H = UBRRH_VALUE; @@ -230,6 +212,7 @@ uint8_t fpm_enroll(void) uint8_t buf[MAXPDLEN]; retries = 0; + do { _delay_ms(100); buf[0] = 0x10; @@ -243,20 +226,17 @@ uint8_t fpm_enroll(void) uint8_t fpm_match(void) { - uint16_t n, count; + uint16_t n, retries; uint8_t buf[MAXPDLEN]; - scan(1); - count = fpm_getcount(); - - buf[0] = 0x04; - buf[1] = 1; - buf[2] = 0x00; - buf[3] = 0x00; - buf[4] = (uint8_t)(count >> 8); - buf[5] = (uint8_t)(count & 0xFF); + retries = 0; + + do { + _delay_ms(100); + buf[0] = 0x11; + send(0x01, buf, 1); + recv(buf, &n); + } while (buf[0] != OK && retries < 50); - send(0x01, buf, 6); - recv(buf, &n); return buf[0] == OK; } |
