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!
Dann hättest du die Umwandlungsroutinen vielleicht anhängen sollen. Außerdem gibts keine Main in dem angehängten file...
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
Jo shit die habe ich natürlich vergessen... Main Brauche ich nicht da dies ein externes C-File ist....
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
Main
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
Da war Sascha schneller ;-) Danke! Das wer ich gleich mal probieren
Vielen Dank Sascha! Es lag wirklich nur am Auslesen des I2C Buses.... Das kommt davon wenn man aus "faulheit" das kurze I2C Protokoll benutzt... Schönes WE.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.