
Untitled
By: a guest on
May 5th, 2012 | syntax:
None | size: 1.56 KB | hits: 18 | expires: Never
int lese_uhrzeit(char *wahl)
{
//lokale Variablen
int _sec, _min, _hour, _weekday, _day, _month, _year;
i2c_start_wait(UHR_ADRESSE+I2C_WRITE); //Adresse in Bus schreiben
i2c_write(0);
i2c_rep_start(UHR_ADRESSE+I2C_READ);
// Daten auslesen
_sec = i2c_readAck();
_min = i2c_readAck();
_hour = i2c_readAck();
_weekday = i2c_readAck();
_day = i2c_readAck();
_month = i2c_readAck();
_year = i2c_readAck();
// Gefragte Information zurueckgeben
if (strcmp(wahl,"sec") == 0)
{
int _sec_einer = (_sec & 0x0F); // Unteres Nibble maskieren -> einer Sekunden
int _sec_zehner = ((_sec & 0x70) >> 4)& 0x07; // Oberes Nibble maskieren -> zehner Sekunden
_sec = _sec_einer + _sec_zehner*10;;
return _sec;
}
else if (strcmp(wahl,"min") == 0)
{
int _min_einer = (_min & 0x0F);
int _min_zehner = ((_min & 0x70) >> 4)& 0x07;
/*char einer[5];
char zehner[5];
itoa(_min_einer,einer,10);
itoa(_min_zehner,zehner,10);
lcd_setze_text(einer,zehner);
wait_ms_long(1000);
*/
_min = _min_einer + _min_zehner*10;;
return _min ;
}
else if (strcmp(wahl,"hour") == 0)
{
int _hour_einer = (_hour & 0x0F);
int _hour_zehner = ((_hour & 0x30) >> 4)& 0x07;
_hour = _hour_einer + _hour_zehner*10;
return _hour ;
}
else if (strcmp(wahl,"day") == 0)
{
int _day_einer = (_day & 0x0F);
int _day_zehner = (_day & 0x30) >> 4;
_day = _day_einer + _day_zehner*10;
return _day ;
}
// Monat, Jahr, Wochentag werden nicht benötigt
else
{
return -1 ;
}
}