Schon wieder DS 1307

OP #3674776
Lesenswert?
• ▲
▼
Hallo zusammen,

Ich weis es gibt schon tausende Foren Beiträge zu diesem Thema aber ich 
glaube ich bin da zu doof dafür.

Ich bekomme einfach mein DS 1307 nicht zum laufen. Ich denke es 
scheitert an der BCD umwandlung.... Habe im Anhang Code für den 1307 
angehängt.
Der Controller ist ein Atmega16

I2C Verbindung funktioniert das Einlesen des Datums auch. Nur beim 
Auslesen kommt nur schrott!
Das ist die Ausgabe meines Uarts wenn ich die Uhrzeit wie im Anhang 
setzte:

46 12 33 50 51 22 100 47


Könnte ihr mir da Bitte weiterhelfen?

Aber jetzt bitte keine Kommentare wie dein Code ist scheiße oder benutz 
die Foren Suche, die habe ich nämlich schon benutzt...

Danke!
Angehängte Dateien:
#3674792
Lesenswert?
• ▲
▼
Hallo,

die Registeradresse im DS1307 wird nicht automatisch auf 0 
zurückgesetzt.
D.h. wenn du 8 Byte ab Adresse 0 schreibst, dann steht der interne 
Adresszähler auf 8. Wenn du nun liest ohne vorher die Adresse wieder auf 
Null zu setzen, dann bekommst du Daten ab Adresse 8!

Der richtige Weg beim lesen ist I2C_Start(Write), <Adresse>, 
I2C_RepStart(Read), <ReadByte>, <ReadByte>, ...


Sascha
OP #3674796
Lesenswert?
• ▲
▼
Jo shit die habe ich natürlich vergessen...


Main Brauche ich nicht da dies ein externes C-File ist....
1
//Umwandlungsroutinen
2

3

4

5
// Convert Decimal to Binary Coded Decimal (BCD)
6
char dec2bcd(char num)
7
{
8
  return ((num/10 * 16) + (num % 10));
9
}
10

11
// Convert Binary Coded Decimal (BCD) to Decimal
12
char bcd2dec(char num)
13
{
14
  return ((num/16 * 10) + (num % 16));
15
}

Main
1
int main(void)
2
{  
3
init(); //Initialisierung TWI& Einausgänge
4

5
rtc_init();
6

7
while(1)
8
   { 
9
     read_time();
10

11
      for (j=0; j<10;j++)
12
  {
13
    _delay_ms(100);
14
    _delay_ms(100);
15
  }
16

17
      write_time();
18
   }
19

20

21

22

23
}

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.