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
(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.
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
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...
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.