Subversion Repositories idreammicro-avr

Compare Revisions

Ignore whitespace Rev 41 → Rev 42

/trunk/projects/clock/clock.c
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++;
}
}