Example #1
0
static void processButton(s_button* button, bool isPressed)
{
	button->pressed <<= 1;
	if(isPressed)
	{
		button->pressed |= 1;
		if(button->pressed >= BTN_IS_PRESSED)
		{
			button->pressedTime = millis(); // this should only be set once!		

			if(!button->funcDone && button->onPress != NULL && button->onPress())
			{
				button->funcDone = true;
				buzzer_buzz(BTN_PRESS_TONETIME, BTN_PRESS_TONE, VOL_UI);
				led_flash(LED_GREEN, LED_FLASH_FAST, LED_BRIGHTNESS_MAX);
			}
		}
	}
	else
	{
		button->pressed <<= 1;
		if(button->pressed <= BTN_NOT_PRESSED)
			button->funcDone = false;
	}	
}
Example #2
0
static void hourBeep()
{
	static beep_state_t beep;
	static byte beepHour;

	if((timeData.mins == 0 && timeData.secs == 0) || beep != BEEP_0)
	{
		switch(beep)
		{
			case BEEP_0:
				if(beepHour != timeData.hours)
				{
					beepHour = timeData.hours;
					pwrmgr_setState(PWR_ACTIVE_HOURBEEP, PWR_STATE_IDLE);
					buzzer_buzz(100, TONE_2_5KHZ, VOL_HOUR);
					beep = BEEP_1;
				}
				break;
			case BEEP_1:
				if(!buzzer_buzzing())
				{
					buzzer_buzz(100, TONE_3_5KHZ, VOL_HOUR);
					beep = BEEP_2;
				}
				break;
			case BEEP_2:
				if(!buzzer_buzzing())
				{
					pwrmgr_setState(PWR_ACTIVE_HOURBEEP, PWR_STATE_NONE);
					beep = BEEP_0;
				}
				break;
			default:
				break;
		}
	}
}
Example #3
0
int main(void)
{
	init();

	sei();

	if(wdt_wasReset())
		resetError();

	buzzer_buzz(200, TONE_4KHZ, VOL_UI);
	led_flash(LED_GREEN, 50, 255);

	watchface_setFace(watchface_normal);
	watchface_loadFace();
/*
	while(1)
	{
		buzzer_buzzb(200,TONE_5KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_4KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_2_5KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_2KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_4KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_5KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_2_5KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_2KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_3_5KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_4KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_3KHZ, VOL_UI);
		buzzer_buzzb(250,TONE_2KHZ, VOL_UI);
		buzzer_buzzb(250,TONE_2KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_4KHZ, VOL_UI);
		buzzer_buzzb(200,TONE_4KHZ, VOL_UI);
	}
*/
	while(1)
	{
		bool timeUpt = time_update();
		if(pwrmgr_userActive())
		{
			if(timeUpt && timeData.secs == 0)
				battery_update();
			buttons_update();
		}

		buzzer_update();
		led_update();
		stopwatch_update();

		if(pwrmgr_userActive())
		{
			alarm_update();
			display_update();
		}

//		freeRAM();

		wdt_update();

		pwrmgr_update();
	}
}