Hi! hab hier mal ne frage zum timer1. mein µC läuft mit 4MHz und meinen prescaler hab ich auf teiler 8 eingestellt (CS10=0, CS11=1, CS12=0). nun setzte ich meinen zähler auf 65526 (10 bis überlauf) und dieser kommt nach 200µs sprich 20µs pro teilung und ohne vorteiler 2,5µs cpu takt. jedoch sind 2,5µs nur 400KHz und keine 4MHz mit der der Osz läuft.hat jemand ne idee wo mein fehler liegt?
4MHZ/8 = 500KHZ 500KHZ entspricht 2µs 10 Schritte a 2µs machen 20µs,passt. Ohne Vorteiler dauert´s entsprechend nur 1/8 der Zeit. Wo ist das Problem? Nicht die Zählgeschwindigkeit mit der Zeit bis zum Überlauf verwechseln!Der Prescaler teilt den CPU Takt herunter,der Timer1 zählt dann mit dieser Geschwindigkeit.Dein Faktor 10 stammt aus den 10 Zählschriten,die der Timer bis zum Überlauf macht.Experimentiere doch mal etwas mit den Reload-Werten,dann wird der Zusammenhang schnell klarer.
nein, ich meine nicht 10 schritte a 2µs sondern bei mir sind es 10 schritte a 20µs. hab gerade nochmal im datenblatt nachgeschaut und was gefunden was mir noch unbekannt ist. das ganze nennt sich "system clock prescaler". ist dieser vielleicht standartmässig auf teiler 8 eingestellt? und gibts für winavr ne routine um den einzustellen?
Den kann man über die Fuses einstellen... Und über das Register "CLKPR". Das kann man in C meist durch CLKPR = ...; ändern. Beachte dabei die Seite 30f des Datenblattes.
Ich bin jetzt einfach mal davon ausgegangen,das dein AVR wirklich mit 4MHZ läuft.Lies dir vielleicht mal das Kapitel über den Systemtakt in Ruhe durch,da steht eigentlich ganz gut beschrieben,welche Einstellungen für welche Taktquellen es genau gibt(Seite 28 im Manual).
okay, jetzt ist es klar, im register "CLKPR" kann ich den eingangstakt vorteilen der dann die clockfrequenz des µc ist. danke!
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.