summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2025-05-23 11:54:02 +0800
committerSadeep Madurange <sadeep@asciimx.com>2025-05-23 11:54:02 +0800
commitba15a9543526b91a17de94483c28540cee112c60 (patch)
tree1f29e0b0feed58f32c3d60cb243977ceae5d3bde
parent4f80330bae049dec0e69433a0e87c5427553febe (diff)
downloadsmart-home-ba15a9543526b91a17de94483c28540cee112c60.tar.gz
Fix the btn controls for servo.
-rw-r--r--lock/Server.Makefile2
-rw-r--r--lock/server.c15
2 files changed, 10 insertions, 7 deletions
diff --git a/lock/Server.Makefile b/lock/Server.Makefile
index 154bf21..0071e8d 100644
--- a/lock/Server.Makefile
+++ b/lock/Server.Makefile
@@ -3,7 +3,7 @@ MCU = atmega328p
PORT = /dev/cuaU0
TARGET = server
-SRC = bend.c uart.c nrfm.c util.c
+SRC = server.c uart.c nrfm.c util.c
OBJ = $(SRC:.c=.o)
CFLAGS = -std=gnu99
diff --git a/lock/server.c b/lock/server.c
index 945b5eb..13ff8d0 100644
--- a/lock/server.c
+++ b/lock/server.c
@@ -18,8 +18,8 @@
#define PWM_TOP 20000
#define SERVO_PIN PB1
-#define LOCK_PIN PD2
-#define UNLOCK_PIN PD3
+#define LOCK_PIN PD3
+#define UNLOCK_PIN PD4
#define RX_IRQ_PIN PC1
#define RX_DDR DDRC
@@ -30,7 +30,7 @@
#define RX_MSK PCMSK1
#define RX_INTVEC PCINT1_vect
-#define VCC_MIN 4900
+#define VCC_MIN 4700
static char tab[] = {
'0', '8', '3', '6', 'a', 'Z', '$', '4', 'v', 'R', '@',
@@ -91,7 +91,10 @@ static inline void init_btns(void)
PORTD |= ((1 << LOCK_PIN) | (1 << UNLOCK_PIN));
EICRA = 0b00000000;
- EIMSK = (1 << INT0) | (1 << INT1);
+ EIMSK = (1 << INT1);
+
+ PCICR |= (1 << PCIE2);
+ PCMSK2 |= (1 << PCINT20);
}
static inline void init_servo(void)
@@ -178,7 +181,7 @@ ISR(RX_INTVEC)
rxd = 1;
}
-ISR(INT0_vect)
+ISR(INT1_vect)
{
if (is_btn_pressed(PIND, LOCK_PIN)) {
lock();
@@ -186,7 +189,7 @@ ISR(INT0_vect)
}
}
-ISR(INT1_vect)
+ISR(PCINT2_vect)
{
if (is_btn_pressed(PIND, UNLOCK_PIN)) {
unlock();