Hi, ich habe ein Problem mit der Decodierung des DCF77- Signals bei einer zunehmenden Anzahl von SRAM- Zugriffen. Mein altes Projekt einer Aquariumssteuerung (ph- Wertanzeige, Magnetventilsteuerung und Funkuhr) habe ich mit einer Temperaturanzeige mittels DS18S20 ergänzen wollen. Dabei habe ich jetzt zuerst versucht mir freie Register durch Verlagerung in den SRAM zu verschaffen. Dabei mußte ich leider feststellen, je mehr Zugriffe in den SRAM erfolgen, desto weniger Stellen des Datums und der Uhrzeit beginnend mit der Jahreszahl werden angezeigt. -> verschwindende Stellen werden als 0 ausgegeben Kann es an der zunehmenden Zykluszeit liegen? Einen Stack- Überlauf schließe ich aus -> die Testzelle im SRAM wurde bisher noch nicht überschrieben. Auch die Zugriffe in den EEPROM habe ich minimiert. Weiterhin brachte auch eine Erhöhung der Taktfrequenz nichts. Eine Besserung brachte bisher nur eine Reduzierung der SRAM- Zugriffe auch in Programmteilen, die im aktuellen Zustand der Uhranzeige nicht durchlaufen werden. Kann mir jemand weiterhelfen? Grüße Raik
An der Zykluszeit/Zugriffszeit liegt es definitiv nicht, da AVR-Controller ohne Wartezeit auf den internen Speicher zugreift. Theoretisch wäre es möglich, daß der Stack in den Variablenbereich reinläuft. Prüfe das mal ab und prüfe auchmal, ob die verwendeten Zeiger für den SRAM-Zugriff richtig gesetzt sind. Gruß Jadeclaw.
@ Jadeclaw, der Stack kann es auch nicht sein. Meine Testzelle im SRAM habe ich auf $0150 gelegt. Diese wurde bisher noch nicht überschrieben. Der Stack wächst im ATMega8 nach letzten Tests nicht unter $0445 hinaus. So weit wie ich das überblicken kann ist das Z-Register korrekt bei der Anzeige gesetzt. Ich kann mir nur vorstellen, das es zu Problemen bei der Decodierung des DCF77- Signals kommt -> Z- Register wird stark benutzt. Grüße Raik
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.