Hallo alle zusammen, ich versuche gerade meinen Counter2 mit einem Uhrenquarz im asynchronen Modus zu betreiben. Dabei versuche ich mit dem Befehl TCCR2 = (1<<CS22) | (1<<CS21); Den Prescaler zu aktivieren. Im Simulator in AVR-Studio 5 setzt er diese Bits aber nicht. Hatte jemand anderes auch schonmal dieses Problem? Woran könnte das liegen? Gruß und Danke schonmal.
:
Verschoben durch Moderator
Bene schrieb: > Im Simulator in AVR-Studio 5 setzt er diese Bits aber nicht. Simulation ist Schall und Rauch. Auch ein Simulator kann sich irren. Wie sieht's am lebenden Objekt aus? Selbst, wenn der Simulator die Bits setzt, glaubst du, der simuliert dann auch noch einen fiktiv vorhandenen 32-kHz-Quarz? Am besten noch mitsamt der 500 ms Anlaufzeit? :-) Davon abgesehen: Simulator ist nicht gleich Simulator, und simuliertes Device nicht gleich simuliertes Devices. Du müsstest also schon wenigstens dazu schreiben, welcher AVR. (Kann man Simulator V1 und V2 im AVR Studio 5 noch explizit auswählen? In jedem Falle V2 bevorzugen.)
danke für die schnelle Antwort. Ich verwende den Atmega8. Im Controller hat er auch nicht funktioniert. Ich habe aber zur Funktionsüberprüfung ein LCD-Display, weshalb ich nicht überall Fehler ausschließen kann. Ich muss den Code erst mal etwas bereinigen, dann werde ich ihn mal posten. Gruß
Bene schrieb: > danke für die schnelle Antwort. > Ich verwende den Atmega8. Der benutzt möglicherweise noch den alten (handgestrickten) Simulator. Schau mal nach, was die Doku an Dingen beschreibt, die im Simulator nicht (oder nicht vollständig) implementiert sind. > Im Controller hat er auch nicht funktioniert. Da kannst du allerdings nicht erkennen, ob er die Bits nicht gesetzt hat, denn der ATmega8 hat kein Debug-Interface. Dafür hättest du dann einen ATmega88 stattdessen benutzen müssen. > Ich habe aber zur Funktionsüberprüfung ein LCD-Display, weshalb ich > nicht überall Fehler ausschließen kann. Um zu sehen, ob der Timer funktioniert, kann man in einer ISR bei jedem Überlauf ein Pin wackeln lassen. Das ist schnell getan. Denk dran: nach dem Setzen von AS2 im ASSR braucht der Quarz eine beachtliche Zeit zum Anschwingen (mehrere 100 ms); in dieser Zeit kannst du vom Timer noch nichts erwarten.
Hallo, Ich hab jetzt mal das c-file angehängt. Ich habe es so geändert, dass ich über LEDs die Rückmeldung bekomme. Die LED nach "while(ASSR & 0x07);" fängt leider nicht an zu leuchten. Ich verzweifle gerade etwas. Gruß
Bist du dir denn sicher, dass dein Quarz (mitsamt seiner Außen- beschaltung, Lastkondensatoren etc.) funktioniert? Ich vermute hier ein Hardwareproblem in dieser Richtung, kein Softwareproblem.
Ich habe jetzt nochmal ein paar Tests gemacht. Dabei habe ich mit Hilfe von leuchtenden LEDs festgestellt, dass der Quarz nur etwa einmal pro Sekunde schwingt und relativ schnell aufhört. Hat hier jemand schon eine Quarz-Lastkapazitäten-Kombination (32,768khz) die gut funktioniert? Ich habe einen Quarz von Conrad, wo aber nicht so genau ersichtlich ist ob Cl= 6pF oder 12,5pF. Ich habe gerade bei Reichelt gesehen, dass dort welche gibt, die genau beschriftet sind. Verwendet hier jemand einen davon? Gruß Bene
Guten Morgen,
mir fällt auf das hier einmal das verODERn fehlt:
Bene schrieb:
TCCR2 = (1<<CS22) | (1<<CS21);
besser so:
TCCR2 |= (1<<CS22) | (1<<CS21);
Gruß
Das hab ich in meiner aktuellen Version übernommen. Es ändert sich dadurch aber leider nichts. Ich bin mir ziemlich sicher, dass es am Quarz liegt. Deshalb bräuchte ich unbedingt eine Empfehlung bezüglich Quarz bzw. Lastkapazität.
Bene schrieb: > Ich bin mir ziemlich sicher, dass es am Quarz liegt. Bist du dir denn sicher, dass der Quarz überhaupt in Ordnung ist?
Bene schrieb: > Ja, ganz sicher. > Ich hab mehrere davon hier liegen. Dann kannst du wohl nur mal mit verschiedenen Kapazitäten experimentieren. Worst case ist dein Quarz ungeeignet, weil sein Serienwiderstand vielleicht zu hoch ist für die benutzte Oszillator- schaltung. Diese kleinen 32-kHz-Quarze sind in ihren Daten nicht so besonders. Vielleicht hast kannst du ja aus irgendwelchem Elektronik- schrott noch einen anderen recyclen? Je größer, um so besser.
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.