Hallo Barthimaeus,
wir kennen uns noch von der Diskussion mit dem tiny13 (und dem Lernpaket) an der Batterie
Leider kann ich Dir mit dem C-Code nicht helfen. Aber ich habe mit PWM´s schon ein bisschen rumgespielt. Mit der WIRKLICHEN PWM vom Controller. Für die Servos fahre ich im Prinzip auch eine PWM, ich nenn die PseudePWM, da schalte ich einen Port Timer-Interrupt-gesteuert aus und ein.Zitat von Barthimaeus
Zurück zur PWM. Wenn Dich Assembler nicht abschreckt, könnte ich Dir mal dienen, leider eben nicht in C. Aber Du hast es doch einfach - guck doch mal in Dein Franzis-Buch ("Lernpaket..") etwa Seite 100, mit dem "weichen" Blinker. Dann weisste wie das geht. Ich hab das dort gelernt. ACHTUNG: dieses Tutorial fährt immer mit 1,2 MHz. Aber die PWM fährt ja immer einen von Dir vorgegebenen ANTEIL von einem Gesamtzyklus.
Ziemlicht gut, aber anstrengend, weil alles in Englisch dasteht, sind die Handbücher der Controller. Hol Dir die doch. Die habe ich als PDF im Rechner, und zum grössten Teil auch ausgedruckt. Es ist einfach fast unmöglich, die vielen Variationsmöglichkeiten ohne diese Datenblätter (ATMEL nennt sie Datasheets) hinzukriegen.
http://www.atmel.com/dyn/products/da...?family_id=607
Die gibts da zum mega8 und zum tiny13 - aber zu allen anderen auch. Ach ja - es gibt von den datasheets eine Kurzfassung und eine lange. Nimm gleich die Langfassung - die Kurzfassung ist nur eine grobe Übersicht - zum Programmieren nicht geeignet.
Wenns noch Probleme gibt frag mich einfach. Aber wie gesagt, im Moment bin ich noch auf dem Assembler-Trip.
Lesezeichen