Exemplo n.º 1
0
int main() {
	/*
	IOCON_PIO1_5 = 0x000000d0;
	GPIO1DIR |= 1 << 5;
	GPIO1MASKED[1 << 5] = 0;
	for (int i = 0;; i++) {
		GPIO1MASKED[1 << 5] = i;
	}
	*/
	matrixled_init();
	ux_init();
	
#if ENEBLE_WDT == 1
	slowClock();
#endif
	
#if SYSTICK_WAIT == 1
#if ENEBLE_WDT == 1
	InitSysTick(120000);
#else
	InitSysTick(12000);	// 12,000,000Hz 12,000 -> 10 = 1ms
#endif
#endif
	
#if ENEBLE_WDT == 0
	initUART();
#endif
	
	/*
	for (;;) {
		playMML("C");
		println("TEST\n");
		toggleSounder();
		wait(10000);
	}
//	uart();
	*/
	
//	bitman();
	//	bitman2();
	for (;;) {
		if (!ux_state()) {
			break;
		}
		WAIT(10);
	}
	for (;;) {
		animate(DATA_ANIM, LEN_DATA_ANIM);
		app_mikuji();
//		app_keytest();
		app_renda();
	}
	return 0;
}
Exemplo n.º 2
0
Arquivo: lma.c Projeto: shimniok/lma
int main()
{
	cli();
	disableWatchdog();

	slowClock();
	initBuzzer();
	initSwitch();
	initADC();
	
#ifdef DEBUG
	uint16_t v = getVoltage();
	uint16_t i;

	for (i = 0x8000; i != 0; i >>= 1) {
		if (v & i) {
			dit();
		} else {
			dah();
		}
		_delay_ms(1000);
	}
#endif
	
	// Retrieve the current warning timeout from eeprom
	uint8_t warn_min = eeprom_read_byte(&cfg_warn_min);
	if (switchPressed()) {
		number(warn_min);
		// pause between increments
		_delay_ms(3000);
	}

	// If switch is depressed (at power up), begin increasing
	// warning time, in 5-minute increments, max 30 minutes
	// SOS time is 2 x warning time.
	//
	while (switchPressed()) {	
	
		if (switchPressed()) {
			// Increment warning time by 5 minutes
			warn_min += 5;

			// Maximum warning time is 30 minutes
			if (warn_min > 30) warn_min = 5;

			// Save the new warning time
			eeprom_update_byte(&cfg_warn_min, warn_min);
		}
		number(warn_min);

		// pause between increments
		_delay_ms(3000);		
	}

	// Compute the number of seconds for warning and SOS
	warn_sec = warn_min * 60;
	sos_sec = warn_sec * 2;

	if (checkVoltage()) {
		ok();
	} else {
		sos();
	}

	enableWatchdog();
 	sei();

	while (1) {
		set_sleep_mode(SLEEP_MODE_PWR_DOWN);
		sleep_mode();
	}
}