Brauch mal Hilfe bei I2C-bus

Gast #395017
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.