Hey, eins vorweg ich bin was uC angeht Anfänger und habe folgende Überlegung: Ich will auf einem Pin vom Port H meines uC ein Rechtecksignal erzeugen mit der Frequenz von 10 kHz. Ich habe in anderen Beiträgen gelesen das dies evtl. mit einer Schleife zu erledigen ist, die als Counter dient und in meinem Fall also bis 800 (8.000.000 Hz/ 800 = 10.000 Hz) hochzählt bevor wieder von high auf low gewechselt wird. Meine Frage die sich mir jetzt stellt ist wie genau das ganze ist ??? Da ja für die Schleife ja auch Rechenzeit verbraten wird ??? Oder bin ich da völlig auf dem falschen Weg ????
Dominik A. schrieb: > Meine Frage die > sich mir jetzt stellt ist wie genau das ganze ist ??? Das hängt von deiner Genauigkeit beim Werteinstellen ab :-) > Da ja für die > Schleife ja auch Rechenzeit verbraten wird ??? Oder bin ich da völlig > auf dem falschen Weg ???? Klar wird durch das Warten die ganze Rechenzeit verbraten. Falls du noch nebenbei was anderes machen willst, schau mal nach Timern. :-)
Dominik A. schrieb: > Ich will auf einem Pin vom Port H meines uC ein Rechtecksignal erzeugen > mit der Frequenz von 10 kHz. Welcher µC ist das? Die meisten können per PWM so ein Rechtecksignal mit der eingebauten Hardware erzeugen. Das heisst, dass so ein Rechtecksignal nach Einstellung der entsprechenden Register genau 0% Rechenzeit der CPU kostet. Gruß, Frank
> eins vorweg ich bin was uC angeht Anfänger Sag bloss. :-) > und habe folgende > Überlegung: Sie hakelt etwas deine Ueberlegung. Dein Microcontroller verwendet seinen Takt um damit Befehle auszufuehren. Wieviele dieser Takte er fuer einen Befehl braucht haengt vom Controller ab, aber auch vom Befehl. Es gibt zu deinem Controller sicher eine Liste mit allen Assemblerbefehlen und da steht dann auch drin wieviel Takte jeder Befehl braucht. Damit koennte man es sicher hinbekommen das dein Controller die 10kHz sehr genau erzeugt. Genauer gesagt so genau wie dein Quarz ist. Der Haken dabei ist das der Controller in dieser Zeit nichts anderes machen kann. Deshalb verwendet man dafuer lieber Timer, also spezielle Zaehlregister im Controller. Olaf
Dominik A. schrieb: > die als Counter dient und in meinem Fall also bis 800 > (8.000.000 Hz/ 800 = 10.000 Hz) > hochzählt bevor wieder von high auf low gewechselt wird. Überleg das noch mal in einer ruhigen Minute: Damit würdest du dann eine "Wechselhäufigkeit" von 10000 Hz erreichen. Das ergibt dann eine Rechteckfrequenz mit 5000 Hz am Portpin... :-o
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.