diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-05-08 07:42:24 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-05-08 07:42:24 +0800 |
| commit | 65804e29b6378ac1898e9fd57f76a9e840122099 (patch) | |
| tree | 3c36adf1858008070202ee94c7a795512c7e7546 | |
| parent | 91352c31240b6a38afb8f70b87413e1f27d1cdfd (diff) | |
| download | avr-fpm-drivers-65804e29b6378ac1898e9fd57f76a9e840122099.tar.gz | |
| -rw-r--r-- | main.c | 34 | ||||
| -rw-r--r-- | r503.c | 14 |
2 files changed, 35 insertions, 13 deletions
@@ -22,6 +22,9 @@ #include "r503.h" +#define FPM_PIN PD3 +#define FPM_INTVEC INT1_vect + static inline void uart_write(const char *s) { for (; *s; s++) { @@ -31,6 +34,13 @@ static inline void uart_write(const char *s) Soft_UART_send_byte('\n'); } +static inline void init_touch(void) +{ + DDRD &= ~(1 << FPM_PIN); + EICRA = 0b00000000; + EIMSK = (1 << INT1); +} + int main(void) { struct fpm_cfg cfg; @@ -38,6 +48,8 @@ int main(void) cli(); Soft_UART_init(); bit_set(DDRB,5); + init_touch(); + sei(); fpm_init(); @@ -59,12 +71,6 @@ int main(void) while (1) { - if (fpm_match()) { - fpm_led_on(BLUE); - _delay_ms(1000); - fpm_led_off(); - _delay_ms(500); - } _delay_ms(2000); } @@ -72,3 +78,19 @@ int main(void) return 0; } +ISR(FPM_INTVEC) +{ + cli(); + if (fpm_match()) { + fpm_led_on(BLUE); + _delay_ms(1000); + fpm_led_off(); + _delay_ms(500); + } else { + fpm_led_on(RED); + _delay_ms(1000); + fpm_led_off(); + _delay_ms(500); + } + sei(); +} @@ -4,15 +4,15 @@ #include "r503.h" -#define MAXPDLEN 64 -#define RST_DELAY_MS 500 +#define MAXPDLEN 64 +#define RST_DELAY_MS 500 -#define HEADER_HO 0xEF -#define HEADER_LO 0x01 -#define ADDR 0xFFFFFFFF +#define HEADER_HO 0xEF +#define HEADER_LO 0x01 +#define ADDR 0xFFFFFFFF -#define OK 0x00 -#define PACKID 0x01 +#define OK 0x00 +#define PACKID 0x01 static inline uint8_t read(void) { |
