Hallo zusammen, die Frage dreht sich um die Zusammenschaltung mehrerer Timer um das Signal bzw. die Periodendauer zu verlängern. Mal angenommen ich habe einen 25 MHz Takt und arbeite mit einem Chip+Board das mehrere Timerblöcke beinhaltet und die Möglichkeit besitzt Timer durchzuschleußen und per BURST mit einem weiteren zu verUNDEN. Als Fallbeispiel möchte ich aus welchen Gründen auch immer ein 0.1 Hz Signal erzeugen und auf einen Ausgang legen. Mein Takt ist 25MHz und ich habe genügend Timer/Counter zur Verfügung (wobei das 16-Bit Counter sind). Um ein solches Signal zu erzeugen bräuchte man einen Teiler von 3815, aber es geht nur maximal bis 1024. Logisch gesehen kann ich zwei Signale aufaddieren um eine längere Periodendauer zu erzeugen. Mir wurde gesagt wenn ich einen 32er Teiler mit einem 128er Teiler Kombiniere bekomme ich einen Teiler von 4096 hin. Wie ist das zu verstehen? Siehe Schaltbild. Wenn ich 2 Signale verUNDe, dann würde doch das langsamere Signal automatisch das schnellere (wenn es Vielfache voneinander sind) dominieren oder? Hoffe meine Frage ist verständlich. Vielen Dank für die Hilfe
A. S. schrieb: > Wenn ich 2 Signale verUNDe, dann würde doch das langsamere Signal > automatisch das schnellere (wenn es Vielfache voneinander sind) > dominieren oder? Nein, nicht bei AND. Wenn das langsamere Signal auf Null ist, kommt das schnellere einfach nicht durch. Somit hast du t_langsam/2 schnelleres Signal und dementsprechend t_langsam/2 gar kein Signal. Damit ist das resultierende Signal = Freq_Schnell, nur eben mit Freq_Langsam moduliert. (Ähnlich wie bei einer IR Fernbedienung). Ob du das so haben willst, musst du selber wissen. EDIT: Normal wäre Signal=>Ein_1/32=>Aus_1=>Ein_2/128=>Aus_2. Aus_2 wäre dann Signal/4096.
Es wird nur ein Schuh daraus, wenn man die Teiler hintereinander schaltet. Dann ist fn= f/Nges mit Nges= N1*N2*....*Nn.
Das ist mit dem Chip so aber nicht möglich. Die Einzige Option die er besitzt ist per BURST mehrere Takte zu UND en. Könnte das nur Softwaretechnisch realisieren indem das Signal abgefragt wird und halt dann einen Teiler darauflegen indem ich nur jede bspw. 32. steigende Flanke Zähle (wenn vorher ein 128.Teiler Signal erzeugt wird) und damit meine Peripherie ansteuere.
A. S. schrieb: > Das ist mit dem Chip so aber nicht möglich. Die Einzige Option die er > besitzt ist per BURST mehrere Takte zu UND en. Schwierigkeiten beim lesen ? Marc Vesely schrieb: > Damit ist das resultierende Signal = Freq_Schnell, nur eben mit > Freq_Langsam moduliert. (Ähnlich wie bei einer IR Fernbedienung).
Eher Schwierigkeiten beim Verstehen. Wenn ich zwei Signale mit einem logischen UND-Gatter verbinde, lässt das Signal den Zähler nur hochzählen wenn sich beide auf einem High-Pegel befinden. Hätte ich jetzt 2 gleiche Signale, einmal durch 2 geteilt und einmal durch 8, dann sehe ich das als würde der 2er Teiler nichts bringen. Der einzige Unterschied wäre, wenn ich das Signal danach direkt auf einen Ausgang gebe, dass die breite des Peaks nur so breit ist wie der Peak der Frequenz mit dem 2er Teiler. Hätte also kein synchrones Rechtecksignal mehr. 2 2 2 2 2 2 2 2 8 8
A. S. schrieb: > gebe, dass die breite des Peaks nur so breit ist wie der Peak der > Frequenz mit dem 2er Teiler. Hätte also kein synchrones Rechtecksignal > mehr. Also doch Schwierigkeiten mit lesen. Marc Vesely schrieb: > Somit hast du t_langsam/2 schnelleres Signal und dementsprechend > t_langsam/2 gar kein Signal. Und das sieht so aus:
1 | _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
2 | Schnell _| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_ |
3 | ___________ ________________ |
4 | Langsam | |______________| |____________ |
5 | _ _ _ _ _ _ _ |
6 | Signal _| |_| |_| |_________________| |_| |_| |_| |_____________ |
Was du mit Burst machst, ist: Marc Vesely schrieb: > Damit ist das resultierende Signal = Freq_Schnell, nur eben mit > Freq_Langsam moduliert. (Ähnlich wie bei einer IR Fernbedienung).
A. S. schrieb: > Als Fallbeispiel möchte ich aus welchen Gründen auch immer ein 0.1 Hz > Signal erzeugen und auf einen Ausgang legen. In der Regel reicht es, wenn man Signale >=1kHz direkt in Hardware erzeugen kann. Alles darunter ist aus CPU-Sicht so schnarch langsam, daß man es bequem mit einem Zähler im Interrupt machen kann. Z.B. für 0,1Hz ein Interrupt alle 1ms und darin ein Zähler bis 5000.
Peter Dannegger schrieb: > Z.B. für 0,1Hz ein Interrupt alle 1ms und darin ein Zähler bis 5000. Will ja nicht kleinlich sein, aber...
stimmt hab die darauffolgenden High's des schnelleren Signals nicht betrachtet. Gut d.h. durch diese Burstkopplung bekomm ich keinen höheren Teiler realisiert. War generell nur hypothetisch und wollte die Burstfunktion besser verstehen. Vielen Dank für die Hilfe.
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.
