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)
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.
Wenn du die Ports nicht aktivierst, werden sie auch nicht verwendet.
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.
aha und wo ist nun das Problem? Soll dir das hier wer machen?
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.
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.
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...
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.