Hi zusammen Ich probiere gerade meine ersten Gehversuche in GCC. Nach ein wenig üben währe ich nun beim ersten Projekt in C Und zwar geht es um eine Ansteuerung eines DC-Motors. Der Motor wird einen Wasserwerfer drehen. Die Grundversion, welche einfach nur einen Analogwert eines Potis in einen PWM umwandelt funktioniert schonmal. Da der DC Motor mit etwa 200W erhebliche Spannungsspitzen erzeugt möchte ich nebst entstörung durch Drosseln, Kondensatoren und TVS Diode einen Sanftanlauf + abschaltung konzipieren. Soweit so gut... Nun ist es leider so dass nicht einmal ein PWM ausgegeben wird. Ausgangswerte werden zwar ins OCR2 Register des ATmega8 geschrieben, das PWM Signal kommt in der Simulation allerdings nur im PINB Register auf PB3 an. PB3 im PortB Register wird nicht getoggelt. DDRB habe ich übrigens auf Ausgang gesetzt. Auch der Controller gibt keinen PWM aus. Kennt jemand dieses Problem? Etwas ähnliches habe ich bereits hier gefunden. http://www.roboternetz.de/phpBB2/viewtopic.php?p=300655 Wenn ihr es wünscht lade ich morgen die Software hoch als Demoprojekt. Noch einen Schönen Abend
pg-zonk schrieb: > einen Wasserwerfer drehen. Die Grundversion, welche einfach nur einen > Analogwert eines Potis in einen PWM umwandelt funktioniert schonmal. > Nun ist es leider so dass nicht einmal ein PWM ausgegeben wird. Was jetzt? Kriegst du eine PWM hin oder nicht. Softanlauf ist ja nichts anderes als dass der OCR Wert einfach nur langsam ansteigt. Anstatt dass in deinem ersten Beispiel der OCR Wert vom Poti per ADC kommt, wird er jetzt einfach sukzessive erhöht, bis er einer Vorgabe (Vollgas) entspricht. Aber das ist ja wieder der PWM egal, wie du zu deinem OCR Wert kommst.
@OP: Erwartest du, dass die Hardware-PWM das PORTx Register verändert? Das wird nicht passieren - im Datenblatt gibt's dazu ein Bild (z.B. beim Atmega48 heißt das 'Compare Match Output Unit, Schematic') im Kapitel 'Output compare unit'.
Halleluja es läuft... Erstmal Danke für eure Antworten! > @OP: Erwartest du, dass die Hardware-PWM das PORTx Register verändert? Genau das habe ich erwartet. Aber wie richtig schriebst passiert dies nicht weil ja die logische Verknüpfung zwischen PORTBx und OCx drin ist und nicht vor PORTx wovon ich zuerst ausgegangen bin. Der Grund das ich keine PWM bekam lag natürlich an mir und meiner Software. Ein & verhängt und schon machts nicht das was man will Tja... Datenblattlesen täte manchmal nicht schlecht. > Softanlauf ist ja nichts anderes als dass der OCR Wert einfach nur > langsam ansteigt. Anstatt dass in deinem ersten Beispiel der OCR Wert > vom Poti per ADC kommt, wird er jetzt einfach sukzessive erhöht, bis er > einer Vorgabe (Vollgas) entspricht. Aber das ist ja wieder der PWM egal, > wie du zu deinem OCR Wert kommst. Genau so habe ich das auch geplant. Nur ist es halt so eine Sache wenn man von Assembler auf GCC umsteigt und die Erfahrung fehlt. Da ist es auch am einfachsten die Entwicklugsumgebung zu beschuldigen ;-P Tja dann Prost und einen schönen Abend
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.