void settime(void) { //get time from user //send time to RTC ds1307_setdate(year, month, day, hour, minute, 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; }
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); } }
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)); }
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(); } } }
void set_time(Time time) { ds1307_setdate(1, 1, 1, time.hour, time.minute, 0); }