Eric Weiß schrieb:
> Leider kann ich am PortB3 kein oszillieren messen. Vielleicht könnt ihr
> ja einen Fehler finden...
Dein Hauptfehler besteht darin, dass du auf bescheuerter Syntax
bestehst.
Das hier
tut nicht das, was du denkst das es tun sollte.
01101001
ist keine Binärzahl sondern eine Oktalzahl.
Und darf man erfahren, warum du diese Schreibweise, der einfach zu
lesenderen, einfacher zu analysierenden und zumindest in dieser Hinsicht
WESENTLICH weniger fehleranfälligen Schreibweise
1 | TCCR2 |= (1<<WGM20) | (1<<WGM21) | // Fast PWM
|
2 | (1<<COM21) | // Clear when Up, Set when down
|
3 | (1<<CS20); // Prescaler 1
|
vorziehst?
Da sieht man auf einen Blick, welche Bits gesetzt werden und kann mit
den Bitnamen im Datenblatt vergleichen. Schreibst du das binär, muss man
erst mal die Bits auseinander dröseln, ehe man feststellen kann, was du
da überhaupt alles einschaltest.
Benutze die Bitnamen aus dem Datenblatt! Dazu wurden die Header Files
entsprechend gepimpt, damit du das machen kannst!
Hier
DDRB = 0b00001000;
ist es zwar prinzipiell richtig, aber von der Schreibweise genau das
gleiche:
Wenn du Bit 3 (PB3) auf 1 setzen willst, dann schreib das auch so:
DDRB |= ( 1 << PB3 );
Jetzt kann der Blindenhund eines Blinden auf 15 Meter Entfernung
erkennen, dass das Bit für PB3 auf 1 gesetzt wird. Kein Mensch muss dazu
irgendwelche Bits zählen (und sich 3 mal verzählen) oder irgendwelche
Prefixe für Binärzahlen benutzen (und manchmal darauf vergessen).