/* * secret_knock_lib.h * * Created on: 03/12/2013 * Author: Filipe Ribeiro */ #ifndef SECRET_KNOCK_LIB_H_ #define SECRET_KNOCK_LIB_H_ #include "msp430g2553.h" // DEFINITIONS #define TIMER_A_0 1 #define TIMER_A_1 2 #define RECORD_MODE_ON 1 #define RECORD_MODE_OFF 2 // knock configuration #define KNOCK_TOLERANCE 2000 // max error tolerance #define TOTAL_TOLERANCE 10000 // max error tolerance #define KNOCK_MAX_SEQ 20 // max number of knocks #define KNOCK_ELAPSE_TIME 3000 // max knock interval in ms #define KNOCK_NORM_INTERVAL 10000 // normalized max knock interval #define KNOCK_OK 1 #define KNOCK_NOT_OK 2 #define PORT1_DIR BIT6+BIT4+BIT0 #define PORT2_DIR 0 #define GREEN_LED_ON (P1OUT |= BIT6) #define YELLOW_LED_ON (P1OUT |= BIT4) #define RED_LED_ON (P1OUT |= BIT0) #define GREEN_LED_OFF (P1OUT &= ~BIT6) #define YELLOW_LED_OFF (P1OUT &= ~BIT4) #define RED_LED_OFF (P1OUT &= ~BIT0) #define GREEN_LED_TOGGLE (P1OUT ^= BIT6) #define PUSH_BUTTON (BIT3) #define CHECK_PUSH_BUTTON (P1IN & BIT3) #define PIEZO_PIN BIT5 #define CHECK_PIEZO_PIN (P1IN & BIT5) #define MOTOR_ON (P2OUT |= BIT3) #define MOTOR_OFF (P2OUT &= ~BIT3) // GLOBAL VARIABLES extern unsigned char recordMode; extern unsigned char stupidUser; extern unsigned long int elapseTime; extern unsigned long int knockBuffer[KNOCK_MAX_SEQ]; extern unsigned long int passwordBuffer[KNOCK_MAX_SEQ]; extern unsigned char passwordLength; extern unsigned char knockIndex; // FUNCTION PROTOTYPES void portInit(void); void timerAInit(unsigned char timerAMask); unsigned char passwordCheck(void); void passwordRecord(void); void knockNormalize(void); void knockReset(void); void knockInit(void); #endif /* SECRET_KNOCK_LIB_H_ */