X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=main.c;h=200b67c10640a2bd4367315754dafff2333df07a;hb=771874a3e8237d435500de05f2a6ed0450ae619a;hp=3bdb5d6e66d33dc27d568dd9790e4bf9b4dca670;hpb=0a81f0c8301bf766f688cc80c00e32799831a8e9;p=beacon-tx-433.git diff --git a/main.c b/main.c index 3bdb5d6..200b67c 100644 --- a/main.c +++ b/main.c @@ -32,7 +32,12 @@ #define BUZZER_ON() PORTB |= _BV(BUZZER_BIT) #define BUZZER_OFF() PORTB &= (~_BV(BUZZER_BIT)) -#define BUTTON_IS_PRESSED() 0 +#define BUTTON_BIT 3 +#define BUTTON_IS_PRESSED() (!(PINB & _BV(BUTTON_BIT))) + +#define LED_BIT 4 +#define LED_ON() PORTB |= _BV(LED_BIT) +#define LED_OFF() PORTB &= (~_BV(LED_BIT)) /* wait new period: timer unit is us: 250 -> 4 khz */ static void wait_period(void) @@ -58,7 +63,10 @@ int main(void) /* PORTB TX/DATA out*/ DDRB |= (1 << TX_ENABLE_BIT) | (1 << TX_BIT) | + (1 << LED_BIT) | (1 << BUZZER_BIT); + /* pull up */ + PORTB |= (1 << BUTTON_BIT); /* init timer */ TCCR0A = 0; @@ -69,14 +77,20 @@ int main(void) wait_period(); /* buzzer at 2 Khz after 10mns if not always on */ - if (always_on || time_second > 600) { - if ((time_period & 1) && (time_period < 500)) + if (always_on || time_second > 60) { + LED_OFF(); + /* every 2 secs */ + if (((time_second & 1) == 0) && + (time_period & 1) && + (time_period < 500)) BUZZER_ON(); else BUZZER_OFF(); } - else + else { + LED_ON(); BUZZER_OFF(); + } /* radio duty cycle is 500/4000 */ if (time_period < 500) {