diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index 755ea81..718cb40 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,4 +1,6 @@ eclipse.preferences.version=1 +encoding//Debug/docs/latex/subdir_rules.mk=UTF-8 +encoding//Debug/docs/latex/subdir_vars.mk=UTF-8 encoding//Debug/driverlib/MSP430FR2xx_4xx/subdir_rules.mk=UTF-8 encoding//Debug/driverlib/MSP430FR2xx_4xx/subdir_vars.mk=UTF-8 encoding//Debug/jsmn/subdir_rules.mk=UTF-8 diff --git a/main.c b/main.c index 4cffd0c..e86a47d 100755 --- a/main.c +++ b/main.c @@ -1,9 +1,6 @@ /** * @file main.c - * @brief UART console, interrupt-driven 4×4 keypad input, and Morse LED blink on MSP430FR2355. - * - * Initializes peripheral modules and enters low-power mode, waking on keypress - * interrupts to blink Morse code on LED and echo keys over UART. + * @brief Entrypoint for the program. * * @date 2025-07-02 */ diff --git a/src/state_machine.c b/src/state_machine.c index 5af30e3..108ec39 100644 --- a/src/state_machine.c +++ b/src/state_machine.c @@ -38,7 +38,7 @@ #define BUZZER_PORT_DIR P5DIR #define BUZZER_PORT_OUT P5OUT #define BUZZER_PIN BIT0 -#define BUZZER_PERIOD 1000U +#define BUZZER_PERIOD 300U /** Red LED on P1.0. */ #define LED_RED_PORT_DIR P1DIR @@ -87,6 +87,7 @@ char buffer_cd[17]; /* Hardware feedback */ static void update_leds(void); void buzz_invalid_input(void); +void buzz_input(void); void sound_alarm(void); void reset_alarm(void); @@ -233,10 +234,20 @@ void buzz_invalid_input(void) { /* beep 50ms */ sound_alarm(); - sleep(50); + sleep(400); reset_alarm(); } +/** + * @brief Short buzzer beep for invalid input. + */ +void buzz_input(void) +{ + /* beep 50ms */ + sound_alarm(); + sleep(50); + reset_alarm(); +} /** * @brief Sound the alarm continuously. @@ -267,6 +278,8 @@ void reset_alarm(void) */ static void keypad_handler(char key) { + buzz_input(); + keypad_last_key = key; keypad_flag_chg = true; @@ -570,6 +583,7 @@ static void door_opened_handler(void) { if (!open_door_allowed()) { transition(STATE_UNAUTHORIZED); + sound_alarm(); } else if ( current_state != STATE_EDIT_STOCK_SELECT && current_state != STATE_EDIT_STOCK_SET && @@ -603,6 +617,8 @@ static void door_closed_handler(void) transition(STATE_IDLE); door_open = false; } + + reset_alarm(); }