Forum: Compiler & IDEs Probleme den Timer0 bzw. 1 richtig zu nutzen im AVR.


von noob (Gast)


Lesenswert?

So,

nun habe ich ja das Problem mit den Fuses am ATmega16 endlich hinter 
mir. Mein Vater hat mir einen AVR ISP mk II geschenkt, damit kann ich 
dann auch richtig die Mega flashen und fusen.

Nun stehe ich auf dem Schlauch mit den Timern.

Wenn ich einen Timer haben will, der mir Mikrosekunden liefert und mein 
ATmega16 ist auf 1 MHz intern RC Oszillator gefused.
Kriege ich dann 1 Mikrosekundenimpulse wenn ich bei dem Timer den 
Prescaler auf 1 (Kein Prescaler) setze?
Oder kriege ich alle 255 Mikrosekunden beim 8 Bit Timer bzw. alle 65355 
Mikrosekunden einen Timer Overflow Interrupt ?

Irgendwie tue ich mich da schwer, weil ich die Impulse am Heckservo 
eines R/C Heli meines Vaters messen will, das mit 768 µs seinen 
Mittenimpuls bekommt. (Ein Futaba S9256).

Das ich mit volatile arbeiten muß ist schon klar. Aber wie ich das mit 
dem Timer machen soll, weiß ich noch nicht. Evtl. kann ich ja den 
Timerwert abfragen. Aber dafür finde ich nun kein so richtiges 
Code-Beispiel weil alle mit MyAVR Boards und 3,6864 MHz arbeiten oder 
irgendwie einen Baudratenquarz drinhaben und deshalb im Programm mit 
Werten arbeiten, die ich nicht so ganz nachvollziehen kann ... Ich fange 
halt eben erst an mit Timern.

Helft mir da mal bitte ein wenig mit Hinweisen. Google hat schon mehr 
für Verwirrung gesorgt mit den vielen Timer Programmen.

Gruß

Johannes

von Guru (Gast)


Lesenswert?

>Kriege ich dann 1 Mikrosekundenimpulse wenn ich bei dem Timer den
>Prescaler auf 1 (Kein Prescaler) setze?

Der Prescaler ist nicht allein dafür zuständig. Interrupts erhälst Du 
bei Overflow oder bei übereinstimmung von Timer- und OCR-Wert.

>Oder kriege ich alle 255 Mikrosekunden beim 8 Bit Timer bzw. alle 65355
>Mikrosekunden einen Timer Overflow Interrupt ?

Wieso "oder"? Der erste Satz erwähnt den Overflow-Interrupt überhaupt 
nicht. Daher ist der zweite Satz, der dies tut kein Gegensatz dazu; bzw. 
nur in bestimmten Fällen.

Lies mal das Datenblatt zu den Timern und den Artikel hier im Wiki. Bin 
jetzt zu faul den herauszusuchen.

von Der Michel (Gast)


Lesenswert?

Für so eine Messung würde sich vielleicht auch die Timer 1 Capture 
Funktion anbieten

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
Noch kein Account? Hier anmelden.