PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zum RN Timer/Counter/PWM Tutorial



ProgStarter
07.11.2014, 19:59
Hallo liebe Gemeinde
Ich möchte mir gerne uC Programmierung beibringen und nutze daher intensiv einige Tutorial u.a. auch von dieser Seite. Es geht sich in diesem Fall um das unten verlinkten Tutorial aus RN-Wissen und dazu möchte ich eine Frage stellen:

Ich habe den Code für das PWM Beispiel 1zu1 kopiert. Beim bilden mit AVR Studio 6.2 sind dann 19 Fehler aufgetreten die ich leider weder zuordnen kann noch verstehe.

expected identifier or '(' bevor 'volatile'
Und
expected ')' before '(' Token

Diese Fehlermeldungen wiederholen sich öfters und ich hab leider keine Ahnung wie ich das Programm auf dem uC zum laufen bringen soll.
Wie bereits erwähnt ich bin absoluter Anfänger und wollte mir mit den Tutorial das Thema ein wenig näher bringen.

Danke für eure Hilfe





http://rn-wissen.de/wiki/index.php/Timer/Counter_(Avr)

Hubert.G
07.11.2014, 22:26
Am Besten stellst du dein gesamtes Programm hier herein, dann kann man es selbst ins AVR-Studio laden und die Fehler analysieren.
Für mich sieht das nach Klammerfehler aus.

Siad
08.11.2014, 07:05
Beim pwm Beispiel auf RN-Wissen hat jemand die main Funktion vergessen sehe ich gerade. ;)
Außerdem wurde hier doch die Beschreibung von invertierter pwm und nicht invertierter pwm vertauscht? Beim nicht invertierten Modus geht ja bei match der Pin auf low und beim Überlauf wieder auf 1 und nicht umgekehrt wenn ich da jetzt nichts verwechsle?


// 3. Compare Output mode einstellen: Pin geht auf high bei Compare match, auf low bei Überlauf.
// Ergibt nichtinvertierte PWM.
TCCR1A |= (1<<COM1A1) | (1<<COM1B1) ;

ProgStarter
08.11.2014, 08:11
Danke für eure Tipps.
Kann das Programm gerne posten habe aber nichts weiter gemacht als ein Atmega32 Projekt zu erstellen und den Inhalt der Website herein zu kopieren.

Sisor
08.11.2014, 09:03
Bei Fehlermeldungen ist meist nur die erste interessant, alle anderen sind oft Folgefehler.
Wie lautet die 1. Fehlermeldung bei dir?

Siad
08.11.2014, 10:03
Wie gesagt wenn du das 1 zu 1 kopiert hast fehlt die main Funktion.
Wenn du ein neues Projekt erstellst wird das Grundgerüst eh schon vorgegeben. Einfach das Programm in die main Funktion hinein kopieren. Die #includes kommen vor die main.
Damit die delay Funktion auch richtig funktioniert musst du noch die Frequenz mit der dein controller läuft angeben. Einfach einmal nach F_CPU suchen welche Möglichkeiten du dafür hast.

ProgStarter
10.11.2014, 11:21
Danke jetzt funktioniert es!