| 37,11 → 37,30 |
| #include <avr/io.h> |
| #include <util/delay.h> |
| |
| #include <assert.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| |
| /****************************************************************************** |
| * Private function prototypes. |
| ******************************************************************************/ |
| |
| /**************************************************************************//** |
| * \fn static void clock__transmit_string(const char* p_string) |
| * |
| * \brief Transmit a string through USART. |
| * |
| * \param[in] p_string String to transmit. |
| ******************************************************************************/ |
| static |
| void |
| clock__transmit_string |
| ( |
| const char* p_string |
| ); |
| |
| /****************************************************************************** |
| * Main function. |
| ******************************************************************************/ |
| |
| 64,27 → 83,27 |
| twi__initialize(100000); |
| |
| // Initialize RTC. |
| ds1307__initialize(); |
| ds1307__initialize(); |
| |
| // Declare some variables. |
| datetime__time_t time = |
| { |
| .seconds = 00, |
| .minutes = 29, |
| .hours = 19, |
| .meridiem = 0 |
| }; |
| ds1307__hour_mode_t hour_mode = DS1307__HOUR_MODE__24_HOUR; |
| // Declare some variables. |
| datetime__time_t time = |
| { |
| .seconds = 00, |
| .minutes = 29, |
| .hours = 19, |
| .meridiem = 0 |
| }; |
| ds1307__hour_mode_t hour_mode = DS1307__HOUR_MODE__24_HOUR; |
| |
| datetime__date_t date = |
| { |
| .day = 3, |
| .date = 5, |
| .month = 5, |
| .year = 9 |
| }; |
| datetime__date_t date = |
| { |
| .day = 3, |
| .date = 5, |
| .month = 5, |
| .year = 9 |
| }; |
| |
| // Initialize Deuligne and configure display. |
| // Initialize Deuligne and configure display. |
| deuligne__initialize(); |
| deuligne__set_display(true, true, true); |
| |
| 91,21 → 110,21 |
| // Switch on backlight. |
| deuligne__switch_on_backlight(); |
| |
| // Set time and hour mode. |
| //ds1307__set_time(&time, hour_mode); |
| // Set time and hour mode. |
| //ds1307__set_time(&time, hour_mode); |
| |
| // Set date. |
| //ds1307__set_date(&date); |
| // Set date. |
| //ds1307__set_date(&date); |
| |
| for (;;) |
| { |
| // Get RTC time. |
| ds1307__get_time(&time, &hour_mode); |
| for (;;) |
| { |
| // Get RTC time. |
| ds1307__get_time(&time, &hour_mode); |
| |
| // Get RTC date. |
| ds1307__get_date(&date); |
| // Get RTC date. |
| ds1307__get_date(&date); |
| |
| char str_date[] = "dd/mm/yy"; |
| char str_date[] = "dd/mm/yy"; |
| snprintf |
| ( |
| str_date, |
| 127,20 → 146,9 |
| time.seconds |
| ); |
| |
| char* p_date = &(str_date[0]); |
| while(*p_date != '\0') |
| { |
| usart0__transmit_byte(*p_date); |
| p_date++; |
| } |
| clock__transmit_string(&(str_date[0])); |
| usart0__transmit_byte(' '); |
| |
| char* p_time = &(str_time[0]); |
| while(*p_time != '\0') |
| { |
| usart0__transmit_byte(*p_time); |
| p_time++; |
| } |
| clock__transmit_string(&(str_time[0])); |
| usart0__transmit_byte('\n'); |
| |
| deuligne__set_cursor_position(DEULIGNE__DISPLAY_LINE_1, 0); |
| 149,8 → 157,35 |
| deuligne__set_cursor_position(DEULIGNE__DISPLAY_LINE_2, 0); |
| deuligne__write_string(str_time); |
| |
| _delay_ms(1000); |
| } |
| _delay_ms(1000); |
| } |
| |
| return 0; |
| return 0; |
| } |
| |
| /****************************************************************************** |
| * Private function definitions. |
| ******************************************************************************/ |
| |
| /**************************************************************************//** |
| * \fn static void clock__transmit_string(const char* p_string) |
| * |
| * \brief Transmit a string through USART. |
| * |
| * \param[in] p_string String to transmit. |
| ******************************************************************************/ |
| static |
| void |
| clock__transmit_string |
| ( |
| const char* p_string |
| ){ |
| // Check the preconditions. |
| assert(NULL != p_string); |
| |
| while (*p_string != '\0') |
| { |
| usart0__transmit_byte(*p_string); |
| p_string++; |
| } |
| } |