peter schrieb:
> Dem Datenblatt des ATmega8 entnehme ich, dass ich für einen Prescaler
> von 1024 folgende Kombination brauche:
> CS02: 1
> CS01: 0
> CS00: 1
Jemand, der ins Datenblatt sieht! Weiter so!
> Jetzt komme ich nicht ganz mit dem Assemblerbefehlen klar. Leider
> verstehe ich die Schreibweise (1<<CS00) nicht genau.
Du kannst es fürs erste als Phrase nehmen für:
Das ergibt ein Bitmuster, bei dem das Bit CS00 gesetzt ist. Den Namen
des Bits CS00 hast du aus dem Datenblatt.
> Ich habe bereits
> zwei Dinge versucht: 1. mit gleicher Schreibweise, geht aber leider
> nicht:
Was bedeutet "geht nicht"?
>
1 | > ldi temp, (1<<CS00) | (1<<CS02) ;Ich will ja CS00 =1 und CS02 =1 für
|
2 | > out TCCR0, temp ;den Vorteiler von 1024
|
3 | >
|
ist korrekt
> und 2. das bitmuster ins register zu schreiben
>
1 | > ldi temp, 0b00000101
|
2 | > out TCCR0, temp
|
3 | >
|
Ist auch korrekt. Aber die erste Schreibweise ist ungleich besser, weil
man dort im Text sieht, dass sowohl CS00 als auch CS02 gesetzt werden.
In der 2.ten Schreibweise muss man erst das Datenblatt studieren um
rauszufinden, dass die beiden 1 Bits mit CS00 und CS02 korrespondieren,
ehe man dann in die Tabelle gehen kann, in der steht, welche Wirkung das
hat.
> Das funktioniert leider auch nicht.
Da beide Schreibweisen absolut 100%ig identisches Ergebnis liefern, mag
das dann ein Hinweis darauf sein, dass in deinem Programm was ganz
anderes faul ist.
> PS: Sorry, falls dieser Beitrag in der "Codesammlung" besser aufgehoben
> wäre, war mir nicht sicher. Notfalls bitte einfach verschieben!
Passt schon. Die Codesammlung dient dazu, fertige Programme zu
veröffentlichen, die für andere von Interesse oder von Nutzen sein
könnten. Nicht wirklich das, worum es bei dir geht.