Hi Experten, ich möchte per PWM eine Motoransteurung mit einen AVR ATMega8 machen. Dazu benötigt man ja die sogenannten beiden PWM Kanäle A und B, um beide Richtungen per H-Brücke anzusteuern. Das eigentliche Problem was ich habe ist die Frage welchen Softwareweg ich gehen sollte: 1.) PWM Hardware des AVR's nutzen, Nachteile sind feste PIN Zuordnungen an OC1A und OC1B, schwierige Änderungen der PWM Frequenz usw. Vorteil könnte sein das sich in großen Teile die Hardware um alles kümmert und somit in Software weniger Taktzyklen benötigt werden. 2.) per Timer + OCR1A Interrupt die Portpins selber toggeln. Vorteil wäre großere Flexibilität und Freiheiten, Nachteil könnte sein das mehr Taktzyklen benötigt werden. Nun benötige ich aber noch ein klitze kleines aber wichtiges Feature zusätzlich. Ich muß in der Lage sein die PWM Frequenz schon nach einem Ansteuerungszyklus sehr variabel abändern zu können ! Das Tastverhältnis bleibt im Grunde immer gleich aber die Ansteuerungsfrequenz ändert sich permanent. Dies wird zur zusätzlichen Datenübertragung benötigt. Meine Frage ist nun ob einer von euch schon sowas gemacht hat oder einfach welche Methode am aussichtsreichsten im Hinblick auf effizienteren Code durchführbar erscheint. Da ich eben auch eine hohe Ansterungsfrequenz benötige. Gruß Hagen PS: eventuell gutgemeinte Vorschläge zusätzliche Spezialhardware zu benutzen interessieren mich nicht.
Wenn du eine hohe Frequenz benötigst, würde ich Hardware PWM nehmen - die Frequenz kannst du dann ganzeinfach mit dem vorteiler für den jeweiligen Timer ändern
" Das Tastverhältnis bleibt im Grunde immer gleich aber die Ansteuerungsfrequenz ändert sich permanent. Dies wird zur zusätzlichen Datenübertragung benötigt. Meine Frage ist nun ob einer von euch schon sowas gemacht hat ... " Das hat bestimmt noch niemand gemacht, und ich würde es aber auch nicht als genial bezeichnen. Wozu PWM, wenn das Tastverhältnis nicht verändert werden soll ?
Das wäre dann PWM (Pulsweitenmodulation) mit fester PW (Pulsweite)... Ich habe PWM (mit variabler PW) bisher immer per Software gemacht, ist recht flexibel. ...HanneS...
So wie du das machst hat das ganze eigentlich wenig sinn. wenn du nur die Frequenz des PWM Signals ändern willst, wäre es besser das PWM Signal per Hardware zu erzeugen, und per Software nur den Vorteiler zu verändern
CTC-Mode vom Timer2 (Tastverhältnis 1zu1 1Mhz)und dann eben den Timer2 mit der harware-PWM vom Timer1 disablen oder halt enablen. Nee oder wie jetzt, die Frequenz soll sich ändern, aber das Tastverhältnis gleich bleiben? Nö, kann ich nicht. Ich ätte jetzt wellenpaketsteuerung weiter ausgeführt mit 1Mhz-Paketen und entsprenden Pausen, die Variable wären... Konfus Axel
Danke für eure Hilfe, ich werde es in Software machen. Gruß Hagen
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.