summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2025-05-08 07:42:24 +0800
committerSadeep Madurange <sadeep@asciimx.com>2025-05-08 07:42:24 +0800
commit65804e29b6378ac1898e9fd57f76a9e840122099 (patch)
tree3c36adf1858008070202ee94c7a795512c7e7546
parent91352c31240b6a38afb8f70b87413e1f27d1cdfd (diff)
downloadavr-fpm-drivers-65804e29b6378ac1898e9fd57f76a9e840122099.tar.gz
Touch detection.HEADmaster
-rw-r--r--main.c34
-rw-r--r--r503.c14
2 files changed, 35 insertions, 13 deletions
diff --git a/main.c b/main.c
index 734f687..4832a03 100644
--- a/main.c
+++ b/main.c
@@ -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();
+}
diff --git a/r503.c b/r503.c
index d1483a0..0b5addc 100644
--- a/r503.c
+++ b/r503.c
@@ -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)
{