www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kürzeste Periode mit Timer warten?


Autor: Gerald Gruber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich hätte mal eine allgemeine Frage zu Timer:
Was ist die kürzeste Zeit, die ich mit zb. im CTC warten kann?
Ist das 1/Takt (z.B. ATMega16 16 MHz -> 63 ns?)
Was ist wenn ich noch eine kürzer Periode warten müsste, hilft da nur
noch einen schnelleren Controller zu kaufen ??

mfg ,Gerald

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Vorsicht: CTC im Z80-Jargon ist was anderes als CTC im AVR-Jargon.
Beim Z80 hieß das `counter-timer circuit', beim AVR ist es `clear
timer on compare match'. ;-)

Theoretisch ist es wohl in der Tat eine Taktperiode, aber wirklich nur
sehr theoretisch: Du brauchst ja deutlich mehr als einen Takt, um
den Timer zu aktivieren, und auch im polled mode für das Auslesen
brauchst Du mehrere Takte pro Schleifendurchlauf.

Kleine Verzögerung macht man daher generell als `spin loop': der
Prozessor zählt in einer Schleife ein Register herunter, bis es 0 ist.
Beim AVR kann man solche Schleifen mit 3 Takten pro Durchlauf bei
maximal 255 Durchläufen oder 4 Takten bei maximal 65535 Durchläufen
realisieren.  Allerdings kommt noch die Setup-Zeit hinzu, um das
Zählregister auf den gewünschten Wert voreinzustellen.

Die kürzestmögliche Verzögerung wäre ein NOP; der benötigt genau einen
Prozessortakt.

Es liegt in der Natur des getakteten Verhaltens eines Prozessors, daß
man keine kürzeren Verzögerungen als die eines Taktes realisieren
kann.

Vielleicht stellst Du die Frage ja lieber vom Kopf auf die Füße und
beschreibst, was Du denn eigentlich vorhast?

Was hat das eigentlich mit dem GCC zu tun?  Das wäre eher ein Kandidat
fürs allgemeine Forum.

Autor: Azrael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn du eine PWM erzeugen wills dann ist 63ns der kürzeste
takt(eventuell auch 2*63, kommt drauf an wie schnell der timer
reagiert, dürfte aber im datenblatt stehen)

schneller geht natürlich nicht(wie soll das gehen?)

Eine möglichkeit währe den timer2 mit einem externen oszillator zu
versorgen, den dürftest du dann glaub ich auch schneller machen, bin
mir aber nicht sicher.

Und sonst kannst du immer noch einen CPLD nehmen und mit einem
oszillator einen schnelleren takt erzeugen, ist halt mehr aufwand

mfg Azrael

Autor: Gerald Gruber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Danke für die schnellen Antworten!!

Eigentlich war das wirklich nur eine allgemeine Frage... wollte als nix
Genaues damit machen.

mfg,Gerald

PS: Entschuldigung fürs falsche Forum, werde das nächste mal genauer
schaun...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.