mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Brauch mal Hilfe bei I2C-bus


Autor: norad (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da müsstest du uns schon zeigen wie die Funktion "Uhrlesen" aufgebaut
ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.