becherglas
16.04.2004, 01:31
EDIT: Problem die 1. dank Kjion gelöst !
Danke !
Da ich nicht noch einen Thread für fast das gleiche Problem eröffnen wollte hab ich Ihn kurzer Hand mal geändert 8-[
Und nun zu meinem aktuellen Problem. Also mein PCF 8385 läuft mitlerweile und ich habe bis auf eine sich aus irgendeinem grund nicht ändernde stundenzahl auch eine schön laufende uhr.
so weit so gut wollte ich mich am datum versuchen und hab mir entsprechende code zeilen die ich irgendwo im netz gefunden habe angeschaut ... leider blicke ich nicht ganz durch.
void GetDate()
{
int var_l=0,var_h=0,flag;
tag = read_rtc(0x05)&0x3F;
monat = read_rtc(0x06)&0x1F;
// Da der PCF8583 nur 4 Jahre zählen kann, ist das Jahr in Adresse 0x10 gespeichert
// Mit dem Inhalt in der Adresse 0x11 wird verglichen, ob sich das Jahr verändert hat
jahr = (read_rtc(0x05)&0xC0)>>6;
zeit[6]=jahr;
flag=read_rtc(0x11);
if(jahr!=flag)
{flag=jahr;
var_l=read_rtc(0x10);
var_l++;
if((var_l&0xf)>9)
{
var_l=var_l&0xF0;
var_l=var_l+0x10;
}
write_rtc(0x10,var_l);
write_rtc(0x11,flag);
}
jahr =read_rtc(0x10);
//Hier wird der Wochentag bestimmt
dow = (read_rtc(0x06)&0xE0)>>5;
dow = dow+1;
zeit[3]=hexd2decD(jahr); // Das aktuelle Jahr wird in den Array gespeichert
zeit[4]=hexd2decD(monat); // Der aktuelle Monat wird in den Array gespeichert
zeit[5]=hexd2decD(tag); // Der aktuelle Tag wird in den Array gespeicher
return;
}
Wäre nett wenn mir das jemand mal schritt für schritt erklären könnte ... vor allem das &-Zeichen bereitet mir Kopfschmerzen. Was wird da gemacht ?
Danke !
Mfg
Danke !
Da ich nicht noch einen Thread für fast das gleiche Problem eröffnen wollte hab ich Ihn kurzer Hand mal geändert 8-[
Und nun zu meinem aktuellen Problem. Also mein PCF 8385 läuft mitlerweile und ich habe bis auf eine sich aus irgendeinem grund nicht ändernde stundenzahl auch eine schön laufende uhr.
so weit so gut wollte ich mich am datum versuchen und hab mir entsprechende code zeilen die ich irgendwo im netz gefunden habe angeschaut ... leider blicke ich nicht ganz durch.
void GetDate()
{
int var_l=0,var_h=0,flag;
tag = read_rtc(0x05)&0x3F;
monat = read_rtc(0x06)&0x1F;
// Da der PCF8583 nur 4 Jahre zählen kann, ist das Jahr in Adresse 0x10 gespeichert
// Mit dem Inhalt in der Adresse 0x11 wird verglichen, ob sich das Jahr verändert hat
jahr = (read_rtc(0x05)&0xC0)>>6;
zeit[6]=jahr;
flag=read_rtc(0x11);
if(jahr!=flag)
{flag=jahr;
var_l=read_rtc(0x10);
var_l++;
if((var_l&0xf)>9)
{
var_l=var_l&0xF0;
var_l=var_l+0x10;
}
write_rtc(0x10,var_l);
write_rtc(0x11,flag);
}
jahr =read_rtc(0x10);
//Hier wird der Wochentag bestimmt
dow = (read_rtc(0x06)&0xE0)>>5;
dow = dow+1;
zeit[3]=hexd2decD(jahr); // Das aktuelle Jahr wird in den Array gespeichert
zeit[4]=hexd2decD(monat); // Der aktuelle Monat wird in den Array gespeichert
zeit[5]=hexd2decD(tag); // Der aktuelle Tag wird in den Array gespeicher
return;
}
Wäre nett wenn mir das jemand mal schritt für schritt erklären könnte ... vor allem das &-Zeichen bereitet mir Kopfschmerzen. Was wird da gemacht ?
Danke !
Mfg