Hi,
ich nehme immer die Datenblätter original von Atmel:nun hab ich hier das Datenblatt vom Atmega8(L) von der Fa. Reichelt vor mir und bin auf Seite88
oh weia...mein englisch!
http://www.atmel.com/images/atmel-24..._datasheet.pdf
Falls das nicht Dein µC ist, bitte verlinke das Datenblatt, das Du benutzt - ich nehme aber an, daß es das gleiche ist.
Na ja, die "Table 38", die ich meine ist auf Seite 97 im Datenblatt. Mit dem WGM10 hast Du Mode 1 gewählt (Phase Correct,8 Bit Modus des Timers). Dazu müssen die COM1Ax und COM1Bx Bits entsprechend der Table 38 gesetzt werden.mit meinen Code hab ich doch "Figure 38. Fast PWM Mode, Timing Diagram" gewählt, oder?
Nun hab ich auch mein schlaues Buch in Deutsch vor mir und sehe aus einer Tabelle,
dass ich mit (1<<WGM10) Mist gebaut habe.
Das wäre dann nicht mehr "Phase Correct", sondern "Fast PWM"Um den Zähler bis 00FF laufen zu lassen, hätte ich WGM12 und WGM10 auf 1 setzen müssen,
Ob "Normal" "Fast PWM" "CTC" Modus - dazu gehören jeweils eigene Tabellen für die COM1Ax und COM1B Bits, die Du unter der TCCR1A Register Beschreibung im Datenblatt ab Seite 96 findest. Hab schon einige deutsche Beschreibungen gesehen und muß sagen, es geht nichts über das Original. Da kommt man um Englisch kaum herumwobei hier COM1A1 auf 1 steht und COM1A0 auf * mh, was ist das nun wieder. ...
Ich such mir immer zuerst den Modus aus, den ich für meine Anwendung brauche. Danach geht die Bitsucherei los.
Die ganzen Möglichkeiten sind nicht ohne und es gibt auch noch gewisse Feinheiten, die man erst bei mehrmaligen Durchlesen der kompletten Doc im Datenblatt mitkriegt.
Dein obiges Programm mit Timer im Modus 1 könntest Du schon zur Ausgabe an den OC1A und OC1B Pins bewegen, wenn Du die COM1Ax und COM1Bx Bits nach der ominösen Table 38 setzt.
Gruß
Searcher
Lesezeichen