Hallo! ich hoffe jemand kann helfen. Ich verwende einen AT89C51ED2. Nun! ich hab mir ne Platine gebastelt wo der Controller und ne Uhr drauf ist, ein PCF 8583. Hab mir zum Ein-und Auslesen einen Treiber geschrieben. Funktioniert auch soweit aber irgendwas Tickt da nicht richtig. Hier mal der ein paar Codezeilen. void main(void) { int z; double b; unsigned char w = 0; P2=255; P0=255; NOTAUS = 0; Uhrschreiben(0x00,0x8B); // Uhr Initialisieren und Stoppen Uhrschreiben(0x01,0x00); // Millisekunden Uhrschreiben(0x02,0x00); // Sekunden Uhrschreiben(0x03,0x50); // Minuten : Byte soll an Port0 zur Kontrolle ausgegeben werden Uhrschreiben(0x04,0x00); // Stunden Uhrschreiben(0x05,0x00); // Jahr / Tage Uhrschreiben(0x06,0x00); // Wochentag/Monat //Uhrschreiben(0x00,0x03); error = 0; Uhrlesen(0x00); while(1) { Uhrlesen(0x00); //Uhr auslesen Uhrlesen(0x00); //wenn diese Zeile deaktiviert ist, fängt es an zu blinken //D.h. die LEDS leuchten im wechsel und zeigen die Werte // 11111111 = FFh oder 01010000 = 50h an. P0=~uhrbuffer[3]; //Speicherstelle Minuten an Port 0 ausgeben. wait1(); if(error == 1) { A3 = 0; } } while(1); } Also ich hab folgendes Problem: Wenn ich permanent die Uhr mit Uhrlesen(0x00); auslesen möchte und dieser nur einmal pro durchlauf fangen meine Leds an zu blinken. Wenn ich den Befehl zweimal hintereinander aufrufe bekomme ich das gewünschte ergebnis. Ich mach schon den ganzen Tag rum und komm nicht hinter das Geheimnis warum es sich so verhält. :( Vielleicht weiss von euch jemmand rat. norad
Da müsstest du uns schon zeigen wie die Funktion "Uhrlesen" aufgebaut ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.