Exemplo n.º 1
0
bool DS1307_GetTimeDate(TimeDate_t* const TimeDate)
{
#if defined(DUMMY_RTC)
	TimeDate->Hour   = 1;
	TimeDate->Minute = 1;
	TimeDate->Second = 1;

	TimeDate->Day    = 1;
	TimeDate->Month  = 1;
	TimeDate->Year   = 1;
#else
	DS1307_DateTimeRegs_t CurrentRegValues;
	const uint8_t         ReadAddress = 0;

	// Read in the stored Time and Date from the DS1307
	if (TWI_ReadPacket(DS1307_ADDRESS, 10, &ReadAddress, sizeof(ReadAddress),
	                   (uint8_t*)&CurrentRegValues, sizeof(DS1307_DateTimeRegs_t)) != TWI_ERROR_NoError)
	{
		return false;
	}

	// Convert stored time value into decimal
	TimeDate->Second  = (CurrentRegValues.Byte1.Fields.TenSec  * 10) + CurrentRegValues.Byte1.Fields.Sec;
	TimeDate->Minute  = (CurrentRegValues.Byte2.Fields.TenMin  * 10) + CurrentRegValues.Byte2.Fields.Min;
	TimeDate->Hour    = (CurrentRegValues.Byte3.Fields.TenHour * 10) + CurrentRegValues.Byte3.Fields.Hour;

	// Convert stored date value into decimal
	TimeDate->Day    = (CurrentRegValues.Byte5.Fields.TenDay   * 10) + CurrentRegValues.Byte5.Fields.Day;
	TimeDate->Month  = (CurrentRegValues.Byte6.Fields.TenMonth * 10) + CurrentRegValues.Byte6.Fields.Month;
	TimeDate->Year   = (CurrentRegValues.Byte7.Fields.TenYear  * 10) + CurrentRegValues.Byte7.Fields.Year;
#endif

	return true;
}
Exemplo n.º 2
0
void power_tick(void) {
    unsigned char dummy;
    if (TWI_ReadPacket(POWER_READ_ADDR, 1, &dummy, 0, (unsigned char *)&_power_data, 4) != TWI_ERROR_NoError) {
        power_cvolts = 0;
    }
    else {
        power_cvolts = (unsigned short)(1.99f * power_cvolts);
    }
}