Esempio n. 1
0
void settime(void)
    {

    //get time from user

    //send time to RTC
    ds1307_setdate(year, month, day, hour, minute, 0);

    }
Esempio n. 2
0
/*
Description: End of Setup, Store changed data to RTC and display end message
State from Diagram: S13
*/	
state do_DISP_SETUP_MSG()
{
	GotoLCD_Location(1,1);
	Send_String("Time&Date Set!");
	ds1307_setdate(time[0],time[1],time[2],time[3],time[4],0);
	_delay_ms(10000);
	clear_display();
	issetup=0;
	return DISP_TEMP;
}
Esempio n. 3
0
int main(void)
{
	
	uint8_t year=0, month=0, day=0, hour=0, minute=0, second=0;
	char str[16];	
	uint8_t count = 0, men = 0;
		
	UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXC);	//odblokowanie przerwania z odbiorem na urat
	
	lcd_init();
	USART_Init(MYUBRR);
	initI2C();
	
	LCD_DISPLAY(LCDDISPLAY);
	LCD_CLEAR;
	LCD_LOCATE(0,0);
	lcd_puts("Hello!");	
	
	ds1307_setdate(91, 1, 14, 12, 00, 00);
	
	sei();
	
	while(1)
	{
		ds1307_getdate(&year, &month, &day, &hour, &minute, &second);
		
		if (a == "N")
		{
			LCD_CLEAR;
			men ++;
			_delay_ms(20);
		}
		
		switch(men){
			case 0:
			LCD_LOCATE(5,1);
			lcd_puts(itoa(hour, str, 10));
			lcd_puts(":");
			lcd_puts(itoa(minute, str, 10));
			lcd_puts(":");
			lcd_puts(itoa(second, str, 10));
			lcd_puts(a);
			break;
			case 1:
			LCD_LOCATE(5,1);
			lcd_puts("20");
			lcd_puts(itoa(year, str, 10));
			lcd_puts("-");
			lcd_puts(itoa(month, str, 10));
			lcd_puts("-");
			lcd_puts(itoa(day, str, 10));
			break;
			case 2:
			men = 0;
			break;
		}
		
		if (count == 20)
		{
			Send_Znak(a);
			count=0;
		}
		
		count++;
		
		_delay_ms(50);
	}
}
Esempio n. 4
0
static void parse_set_date(void) {
  checked(date_t t = parse_date());
  ds1307_setdate(date_get_d(t), date_get_m(t), date_get_y(t));
}
Esempio n. 5
0
File: main.c Progetto: shtomik/AVR
int main(void)
{
lcd_init();
ds1307_init();
adc_init();
timer_init();
asm("sei");
/*
    //test
	lcd_str("Hello, World");
	lcd_gotoxy(1,0);
	lcd_str("by shtomik");
	_delay_ms(1000);
	lcd_clr();
	lcd_str("after clr");*/

start_t();

    //test
    ds1307_setdate(12, 12, 31, 23, 01, 35);

//смонтировать microSD
res = pf_mount(&fs);
if(res == FR_OK)
{
    //диск смонтирован и мы продолжаем работу
    if(pf_open("test.txt") == FR_OK)
    {
        //открыли файл в корне test.txt
        //...
        pf_lseek(0);
            //заполняем буффер, надо набрать 512 байт инфы и писать
			//иначе будет много лишних пробелов
            //sprintf(buff, "%s\n%s", "Hello,World!", "by_sht");
            //записываем его на карту
            pf_write(buff, 512, &br);
			//финализируем запись
       		pf_write(NULL, 0, &br);
			pf_lseek(512);
			pf_write(buff, 512, &br);
        	//финализируем запись
        	pf_write(NULL, 0, &br);

		lcd_clr();
        lcd_str("ok");
    }
    else
    {
        //file not found or ...
        lcd_str("file not found");
    }
    //демонтируем диск передав функции нулевой указатель
    pf_mount(NULL);
	lcd_clr();
	lcd_str("file write");
}
else
{
    //не удалось смонтировать диск
	lcd_clr();
    lcd_str("not flash");
}

    while( 1 )
    {
        ;
    }

return 0;
}
int main(void) {
	watchdog_clear_status();
#ifdef USING_PRINTF
	serial_init();
#endif
	cli();
	clear_radio_strings();
	system_schedule = new_schedule();
	
	//Be aware: order may matter, especially with si4703/5_init and nokia5110_init.  (they all share a reset pin)
	watchdog_set(WD_INTERRUPT_AND_SYSTEM_RESET, WD_TIMEOUT_1_S);

	set_data_directions();
	timer0_pwm_prescaler_compare_A(0, 3, true, false);
	timer1_pwm_prescaler_compare(0, MAX_BRIGHTNESS, 1, 1, false, false);
	timer2_ctc(0.001, true);
	nokia5110_spi_init(0x51);
	i2c_init();
	nokia5110_power_on();
	set_volume(0);
	ADC_init(ADC_PC3, ADC_NO_TRIGGER, ADC_REFERENCE_1V1, true, true); //ADC_TIMER0_OVERFLOW
	sei();
	
	ds1307_getdate_s(&time);
		
	//If the clock isn't set, it reads all values as zero.  Set a default time
	if (time.year == 0) {
		ds1307_setdate(14,10,21,12,28,30);
	}
	
	time_alarm_A.hour = eeprom_read_byte(&alarm_A_hours);
	time_alarm_A.minute = eeprom_read_byte(&alarm_A_minutes);
	alarm_A_is_beep = eeprom_read_byte(&alarm_A_tone_setting);
	if (time_alarm_A.hour >= time_limits[hours]) {
		time_alarm_A.hour = 0;
		eeprom_update_byte(&alarm_A_hours, time_alarm_A.hour);
	}
	if (time_alarm_A.minute >= time_limits[minutes]) {
		time_alarm_A.minute = 0;
		eeprom_update_byte(&alarm_A_minutes, time_alarm_A.minute);
	}
	if (alarm_A_is_beep > true) {
		alarm_A_is_beep = true;
	}
	
	time_alarm_B.hour = eeprom_read_byte(&alarm_B_hours);
	time_alarm_B.minute = eeprom_read_byte(&alarm_B_minutes);
	alarm_B_is_beep = eeprom_read_byte(&alarm_B_tone_setting);
	if (time_alarm_B.hour >= time_limits[hours]) {
		time_alarm_B.hour = 0;
		eeprom_update_byte(&alarm_B_hours, time_alarm_B.hour);
	}
	if (time_alarm_B.minute >= time_limits[minutes]) {
		time_alarm_B.minute = 0;
		eeprom_update_byte(&alarm_B_minutes, time_alarm_B.minute);
	}
	if (alarm_B_is_beep > true) {
		alarm_B_is_beep = true;
	}
	
	channel = eeprom_read_word(&saved_channel);
	if (channel < SI4705_FM_LOW || channel > SI4705_FM_HIGH) channel = 889;
	
	for (err = 0; err < NUMBER_OF_PRESETS; err++) {
		presets[err] = eeprom_read_word(&saved_presets[err]);
		if (presets[err] < SI4705_FM_LOW || presets[err] > SI4705_FM_HIGH) presets[err] = 945;
	}
	
	ms_clock = 0;
	while(true) {
		if (is_fresh) {
			is_fresh = false;
			check_schedule();
			switch(state) {
				case home:
					home_state(); break;
				case menu: 
					menu_state(); break;
				case set_clock:
					set_clock_state(); break;
				case set_alarm_A:
				case set_alarm_B:
					set_alarm_state(); break;
				case alarm_A:
				case alarm_B:
					alarm_state(); break;
				case radio:
					radio_state(); break;
				case preset:
					preset_state(); break;
				default: break;
			}
			init = false;
			state_handler();
			watchdog_entertain();
		}
	}
}
Esempio n. 7
0
void set_time(Time time) {
	ds1307_setdate(1, 1, 1, time.hour, time.minute, 0);
}