Forum: Mikrocontroller und Digitale Elektronik ATtiny2313 16-bit Timer und OC Ports


von Sven (Gast)


Lesenswert?

Hi.

Kann man bei einem ATtiny2313 den 16 Bit Timer / Counter rein intern in 
der Software verwenden, und gleichzeitig die zugehörigen OC Ports 
anderweitig verwenden? (Als Eingang für ein "Mäuseklavier", mit dem ein 
bestimmter Vorgabewert eingestellt wird)

von Markus O. (pipimaxi)


Lesenswert?

Man muss einen Timer nicht unbedingt für eine PWM bzw. das Toggeln eines 
Pins verwenden. Einfach die COMxxx Bits nicht setzen, die für die OC 
Beschaltung verantwortlich sind.

von Hubert G. (hubertg)


Lesenswert?

Wenn du die Ports nicht aktivierst, werden sie auch nicht verwendet.

von Sven (Gast)


Lesenswert?

Ahja danke.
Ich will ja den Counter verwenden, um auf 1 Sekunde runter zu teilen.
Der interne Oszillator hat 8 MHz, wird intern schon auf 1 MHz runter 
geteilt.
Ich will dann haben, dass der Counter bei erreichen von 1 Million eine 
bestimmte Routine aufruft, in der dann weitere Maßnahmen ergriffen 
werden.
Die Routine soll folgendes machen: eine Zählvariable um 1 erhöhen.
Wenn diese einen bestimmten Wert erreicht, springe zu einer anderen 
Routine die dann Ports setzt usw.

von Markus O. (pipimaxi)


Lesenswert?

aha und wo ist nun das Problem? Soll dir das hier wer machen?

von Sven (Gast)


Lesenswert?

Ne wollte nur wissen, ob man den Timer nur intern benutzen kann und den 
OC Port dann für was anderes verwenden kann.

Bei  Figure 40. 16-bit Timer/Counter Block Diagram
im Datenblatt sieht das so aus, als ob der Port zu dem Counter dazu 
gehört.

von Sven (Gast)


Lesenswert?

Wie ich den Timer dazu bringe eine Routine anzuspringen wenn die 1 mio 
voll ist, muss ich auch noch testen.
Habe noch gar nicht praktisch angefangen, muss mir erst mal einen STK 
500 o.ä zulegen. Bin erst mal am Planen wie ich das Projekt umsetze.

von Markus O. (pipimaxi)


Lesenswert?

Der Port kann als ganz normaler IO-Port genutzt werden oder als PWM für 
den Timer...was der Port bzw. der Pin letztendlich machen soll, ist 
deine Entscheidung. Der Timer kommt auch ohne Port wunderbar zurecht...

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

Sven schrieb:
> 1 mio

Geht nicht. Der Timer kann nur bis 65535 zählen. Lass' ihn am besten bis 
10000 zählen und zähle in der Compare-Routine eine Variable bis 100 
hoch. Bei 100 führst Du dann die Routine aus.

Gruß
Jonathan

von Sven (Gast)


Lesenswert?

Hmm ich dachte, man könnte den zweiten Timer mit dazu nehmen und so 
direkt runter auf eine Sekunde kommen, also 1 Mio Teilungsfaktor 
erreichen.

Ansonsten müsste man in einer eigenen Routine halt nochmal runterteilen, 
so wie du es beschreibst.

von Klaus 2. (klaus2m5)


Lesenswert?

Da wäre noch der Prescaler. Damit zählt der Timer nur noch jede 1024., 
256., 64., oder 8. Clock.

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.