Forum: Mikrocontroller und Digitale Elektronik Timer Clock alternativ schalten


von Tiny_user (Gast)


Lesenswert?

Konstellation:

- Tiny84
- Timer 0 (8 Bit)
- Timer Clock Frequenz variabel bis 10 KHz

Ich möchte gerne einen externen Clock auf den Timer0 wirken
lassen, und alternativ dazu diesen (externen) Clock auch
unverändert auf einen Controller Pin ausgeben, sozusagen
umschaltbar at runtime.

Mir fehlt noch etwas die Vorstellungskraft, und bevor ich es
selbst aufbaue und ausprobiere, möchte ich in die Runde Fragen
ob das funktioniert - vielleicht weiss es jemand auf Anhieb:

Ich setze das Output Compare Register des Timer0 auf null und
leite das Output Compare Ergebnis auf den zugehörigen Pin OC0A.

Erzeuge nun ich damit die Originalfrequenz oder erreiche ich nur
ein Toggle, also eine Frequenz / 2.

Alternative wäre: für jeden Clock einen IRQ zu erzeugen und
per ISR einen Clock auszugeben .....  ist bei 10 KHz sicher
machbar .... aber ich wollte es eben in Hardware machen.

Oder anders ausgedrückt:
Gretchenfrage was passiert eigentlich wenn die Timer Logik
dauernd mit ((TIMER==0) == true) zu tun hat?

von Antwort (Gast)


Lesenswert?

Spiele doch deine Gedanken im Simulator durch, dort kannst du alles 
sehen und schaue ins Datenblatt

von Tiny_user (Gast)


Lesenswert?

Antwort schrieb:
> Spiele doch deine Gedanken im Simulator durch, dort kannst du alles
> sehen und schaue ins Datenblatt

Ich weiss wie ich zu einem Ergebnis komme, dazu brauche ich
deine weisen Ratschläge nicht.

Offensichtlich hast du meinen Text nicht ganz gelesen und/oder
verstanden.

Tiny_user schrieb:
> ..... und bevor ich es
> selbst aufbaue und ausprobiere, möchte ich in die Runde Fragen
> ob das funktioniert - vielleicht weiss es jemand auf Anhieb:

von sackgesicht (Gast)


Lesenswert?

Tiny_user schrieb:
> Ich weiss wie ich zu einem Ergebnis komme, dazu brauche ich
> deine weisen Ratschläge nicht.

Ich zumindest brauche deine Fragen auch nicht.

von Peter D. (peda)


Lesenswert?

"11.7.2 Clear Timer on Compare Match (CTC) Mode
...
The waveform generated will have a maximum frequency of 0 = fclk_I/O/2
when OCR0A is set to zero (0x00).

von Tiny_user (Gast)


Lesenswert?

Danke an PeDa ...

Hätte ich es doch selbst gefunden im Dschungel .....

von Tiny_user (Gast)


Lesenswert?

Weiss jemand noch einen anderen Weg einen eingespeisten Clock
auf einen anderen Pin weiterzuleiten (der Weg über den IRQ
ist mir geläufig)?

von Thomas E. (thomase)


Lesenswert?

Tiny_user schrieb:
> Weiss jemand noch einen anderen Weg einen eingespeisten Clock
> auf einen anderen Pin weiterzuleiten (der Weg über den IRQ
> ist mir geläufig)?

Das kommt darauf an, was der Controller sonst noch machen soll. Du 
kannst das auch in der Hauptschleife pollen:
1
 if(PINX & (1 << Px)) PORTX |= (1 << Py); else PORTX &= ~(1 << Py);

Solange das häufig genug passiert und keine Takte verschluckt werden, 
ist das völlig in Ordnung. Dem Controller ist das vollkommen egal. 
Meistens tritt er sowieso nur auf der Stelle. Und der Port verschleisst 
auch nicht, wenn man ihn eine Million Mal in der Sekunde anspricht.

mfg.

von Tiny_user (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> Du kannst das auch in der Hauptschleife pollen:

Ja klar, das läuft für meine Sichtweise wie unter IRQ ausgeben
ab. Man würde sich allerdings die Push/Pop-Orgie in der ISR
ersparen.

Ich dachte es gäbe vielleicht noch einen "Schleichweg" in der
Hardware den ich im Datenblatt-Dschungel noch nicht erkannt habe.

von Cyblord -. (cyblord)


Lesenswert?

Tiny_user schrieb:
> Ich dachte es gäbe vielleicht noch einen "Schleichweg" in der
> Hardware den ich im Datenblatt-Dschungel noch nicht erkannt habe.
Humbug.

Und wer glaubt, ein AVR Datenblatt sei ein Dschungel, der sollte mal 
prüfen ob er nicht der Affe ist.

von Tiny_user (Gast)


Lesenswert?

Alle sind Deppen, und du bist der Einäugige unter den Blinden.

von S. Landolt (Gast)


Lesenswert?

> Push/Pop-Orgie in der ISR

c-hater, Ihr Auftritt!

von Tiny_user (Gast)


Lesenswert?

Ja, ich warte schon .....

von Cyblord -. (cyblord)


Lesenswert?

Tiny_user schrieb:
> Alle sind Deppen, und du bist der Einäugige unter den Blinden.

Warum beleidigst du das ganze Forum? Wie Undankbar kann man sein. Pfui

von Tiny_user (Gast)


Lesenswert?

Ich habe nur die Sichtweise einer beteiligten Person mit
meinen eigenen Worten wiedergegeben.

von Karl H. (kbuchegg)


Lesenswert?

Schön.
Und das reicht dann auch.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.