mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mal wieder PCF8583, initialisieren?


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo!
ich weiß, das ihr so langsam ne abneigung gegen den baustein entwickelt
habt. dennoch hoffe ich, dass ihr mir helfen könnt. und zwar ist
folgendes:
1. uhrzeit setzen geht. die zeit danach auslesen funktioniert auch.
2. wird die uhrzeit nicht gesetzt (durch auskommentieren) sondern nur
ausgelesen fängt er bei "0" an zu zählen, läuft quasi als stopuhr.
muss die kiste noch irgendwie was initialisieren, z.b. im
status/control-register? oder is einfach nur die batterie alle?
hier der relevante teil aus dem quelltext:


/*
void zeit_set(char h_set, char m_set, char s_set)
{
  i2c_start();
  i2c_out(0xA0);
  i2c_out(0x02);
  i2c_out(s_set);
  i2c_stop();
  i2c_start();
  i2c_out(0xA0);
  i2c_out(0x03);
  i2c_out(m_set);
  i2c_stop();
  i2c_start();
  i2c_out(0xA0);
  i2c_out(0x04);
  i2c_out(h_set);
  i2c_stop();
}
*/
void main ()
{
  //zeit_set(0x21,0x56,0x20);  //h,m,s für 21:56:20

  while(1)
  {
    //zeit auslesen
    i2c_start();  //i2c starten
    i2c_out(0xA0);  //Ad. schreiben
    i2c_out(0x02);  //sek wählen
    i2c_start();  //i2c starten
    i2c_out(0xA1);    //Ad lesen
    s_hex = i2c_in();  //sek zuweisen
    i2c_stop();
    i2c_start();
    i2c_out(0xA0);  //Ad. schreiben
    i2c_out(0x03);  //sek wählen
    i2c_start();  //i2c starten
    i2c_out(0xA1);
    m_hex = i2c_in();  //min zuweisen
    i2c_stop();
    i2c_start();
    i2c_out(0xA0);  //Ad. schreiben
    i2c_out(0x04);  //sek wählen
    i2c_start();  //i2c starten
    i2c_out(0xA1);
    h_hex = i2c_in();  //hours zuweisen
    i2c_stop();

    s = ( s_hex & 0x0f ) + ( 10 * (s_hex >> 4) ); //hex2bcd
    m = ( m_hex & 0x0f ) + ( 10 * (m_hex >> 4) );
    h = ( h_hex & 0x0f ) + ( 10 * (h_hex >> 4) );

    sprintf(zeik," Time: %2d:%2d:%2d  ",h,m,s);
    lcd_print(0,0,zeik);    //ausgabe auf display
  }
}
hab zwar gegooglet un auch was gefunden. konnte damit aba nix anfangen,
weil die da mitm watchdog handiert ham.
dank im voraus
matthias

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat sich erledigt. batterie war hardwaremäßig auf der (industriell
gefertigten) platine verpolt.

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.