Hallo, wo liegt die Grenze der maximal erfassbaren Impulse bei einem ATmega 644 wenn man ihn mit 18 MHz betreibt? Ich möchte über den 16bit Timer Impulse zählen... GEht das dann bis 18 MHz oder wo ist die Grenze??? Danke für eine Antwort...
Naja. Der Puls muss mindestens einen clock tief sein und mindestens einen clock hoch, allenfalls steht im Datenblatt mehr.
Du brauchst auch noch Rechenzeit, um die Impulse zu verarbeiten. Ich weiß nicht genau, was Du machen willst aber für maximale Geschwindigkeit würde ich es so machen: Timer starten mit Interrupt, der eine globale Variable (z.B. globvar) auf 0 setzt. Eine Schleife mit while (globvar), in der Du die Impulse zählst. Sobald der Timer abgelaufen ist, setzt er die Variable, deine Schleife endet und Du weißt, wieviele Impulse in der Timerzeit aufgetreten sind. Jetzt kannst Du im Datenblatt schauen, wieviele Zyklen jede dieser Operationen braucht, die 18MHz dadurch teilen und Du hast deine maximal erfassbare Frequenz. Ausm Bauch dürfte das weit unter 1MHz liegen. Es gibt MCUs, die eine PWM automatisch lesen, wie z.B. der STM32. Da der auch gleich mit 72MHz läuft, geht da einiges mehr.
Hallo, den Timer 2 kann man ja zum zählen von Flankenwechsel verwenden. Das würde ich gerne machen. Doch sicher gibt es irgendwo eine Grenze die durch den Takt der CPU begrenzt wird??? Werde wohl mit einer 18MHz CPU bestimmt nicht mehr als 18MHz zählen können oder? Also direkt ohne Vorteiler und der gleichen... Ich habe das Datenblatt bereits mal angesehen aber wenn ich ehrlich bin habe ich keinen Schimmer unter welchen Punkt man da suchen muss. Timer2 der 16bit Timer war mein Abschnitt bisher. Vielen Dank!
@ FlobiFlob (Gast) >den Timer 2 kann man ja zum zählen von Flankenwechsel verwenden. Kann man machen. >würde ich gerne machen. Doch sicher gibt es irgendwo eine Grenze die >durch den Takt der CPU begrenzt wird??? Sicher. >Werde wohl mit einer 18MHz CPU bestimmt nicht mehr als 18MHz zählen >können oder? Also direkt ohne Vorteiler und der gleichen... Es sind weniger als 9 MHz. Denn das externe Siganl wird mit dem CPU-Takt abgetastet und synchronisert. D.h. die LOW sowie HIGH Zeit muss MINDESTENS so lang wie ein Taktzyklus der CPU sein, eher noch etwas mehr. Real eher 4MHz oder so. >Ich habe das Datenblatt bereits mal angesehen aber wenn ich ehrlich bin >habe ich keinen Schimmer unter welchen Punkt man da suchen muss. Ist nirgendswo direkt beschrieben. Aber beispielsweise beim Thema externes Takten des SPI per XCK steht dort eindeutig, dass die externe Taktfrequenz max. 1/4 des internen Taktes betragen darf. Genauso wie bei ISP bei Programmieren. MFG Falk P S Um einen brauchbaren Frequenzzähler zu bauen braucht es aber noch mehr, denn man muss den Zähler definiert anhalten und auslesen könen.
Hallo FLobi, ich habe gerade nur das Datenblatt des ATMega8(L) vorliegen, aber grundsätzlich gilt das folgende für alle Counter Funktionen von den ATMega's (Kapitel Timer/Counter and Prescalers - External Clock Source): "Each half period of the external clock applied must be longer than one system clock cycle to ensure correct sampling. The external clock must be guaranteed to have less than half the system clock frequency (fExtClk < fclk_I/O/2) given a 50/50% duty cycle. Since the edge detector uses sampling, the maximum frequency of an external clock it can detect is half the sampling frequency (Nyquist sampling theorem). However, due to variation of the system clock frequency and duty cycle caused by Oscillator source (crystal, resonator, and capacitors) tolerances, it is recommended/ that maximum frequency of an external clock source is less than fclk_I/2.5." In deinem Fall bedeutet das also du kannst maximal (bei Verwendung der "Capture" Funktion (T0/T1 Pin)) 18MHz/2,5 = 7,2 MHz erfassen. Theoretisch aber durchaus 9MHz. Schneller kannst du mit externen dig. Bausteinen werden (ext. Zähler, etc.). Guck einfach mal hier im Forum. Gruß, Max
Hi >Ich habe das Datenblatt bereits mal angesehen aber wenn ich ehrlich bin >habe ich keinen Schimmer unter welchen Punkt man da suchen muss. Timer2 >der 16bit Timer war mein Abschnitt bisher. Es gibt auch noch AppNotes: http://www.atmel.com/dyn/resources/prod_documents/doc2505.pdf Unter 'External Clocking'. MfG Spess
Man liest da oben "The CPU needs at least two cycles to detect a pin-change, so the maximum external clock frequency is therefore CK/2." Wenn der Prozessor noch was tun soll, wird er dann wohl meeehr Rechenzeit brauchen...
Hi >Wenn der Prozessor noch was tun soll, wird er dann wohl meeehr >Rechenzeit brauchen... Ein Timer zählt auch ohne Rechnen weiter. MfG Spess
spess53 schrieb: > Ein Timer zählt auch ohne Rechnen weiter. Und ein Zähler zählt sogar ohne Timer weiter... ;-)
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.