Hallo zusammen! Momentan habe ich Probleme den Timer2 meines ATmega48 zum laufen zu bringen. Bei mir will der Timer2 (übrigens das gleiche Problem auch mit Timer0) nicht hochzählen. Der Code befindet sich im Anhang: Kann mir ja vielleicht jemand helfen, bzw, sagen was nicht richtig ist? Danke und Gruss Andi
Wie hast du denn festgestellt, dass der Timer nicht läuft?
Ich habe das Programm im Simulator getestet und Timer2 hatte über mehrere ms immer einen Wert von 0. Und eine weitere Messbarkeit habe ich in der Do- Loop- Schleife eingebaut. PortB, 5 war immer low.
Hattest du im Simulator auch den Button "Refresh Variables" gedrückt oder hast du das Programm angehalten, um zu sehen, welchen Wert Timer2 hat?
So habe das nochmals getestet und tatsächlich, ich habe den Button gar nicht verwendet! Nun die Sache mit dem Timer läuft jetzt prima! was mir alerdings auch noch zu schaffen macht, ist die var= sin(x) Berechnung. Denn jedes Mal zeigt mir das Programm einen Fehler auf beim Compilieren. Erst wenn ich die Berechnung von B deaktiviere, so wie im Code zu sehen funktioniert es. Das Programm sagt mir dann komischerweise dass es bei der Variable B eine "integer" oder "long" verlangt, jedoch ist B ja auch so deklariert! Nun habe ich keine Ahnung an was es denn liegen könnte :-(
Dann schau in die BASCOM Hilfe, wie man die Sin() Funktion benutzt. Dazu hast du ja die Hilfe.
Das Bascom Beispiel verwendet für Sin() Single-Variablen. Außerdem kannst Du vergessen bei Prescale 1 für den 8Bit Timer2 in der ISR 'ne Sinus-Berechnung zu machen, da bleiben von theoretisch 256 Takten vielleicht 130 Takte über. Nicht umsonst nimmt man für so 'ne Aufgabe 'ne Lookuptabelle für den Sinus.
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.