Eines noch
1 | ; OCR1A - Timer/Counter1 Output Compare Register A
|
2 | ldi r16, 0b00001111 ; Setze Vergleichswert für CTC
|
3 | out OCR1A, r16
|
Ich hab ja nichts gegen Kommentare. Sofern sie sinnvoll sind.
Die hier sind nicht sinnvoll. Dass da etwas ins OCR1A bugsiert wird, das
sehe ich auch so im Code. Das musst du mir nicht kommentieren. Viel
wichtiger wäre für mich als Leser des Codes, wie du auf den Wert
gekommen bist! Warum 15? Wie kommen die zustande? Welche Bewandniss hat
es damit.
Generell: Kommentiere nicht das wie! Kommentiere das warum!
Wie etwas passiert, das steht im Code. Den Code brauch ich nur lesen.
Was aber nicht im Code steht, das ist warum hier etwas, und zwar genau
das was im Code steht, passiert.
und noch was. Wenn du 15 meinst, dann schreib auch 15. Es ist witzlos,
Dezimalzahlen in Binärform hinzuschreiben, wenn man die im Kopf sowieso
erst mal wieder auf Dezimal umformen müsste, damit man mit dem
Zahlenwert was anfangen kann. Du kannst ruhig schreiben
1 | ; OCR1A - Timer/Counter1 Output Compare Register A
|
2 | ldi r16, 15 ; 15, weil .....
|
3 | out OCR1A, r16
|
das ist für dich beim Schreiben einfacher und auch bei deinem Leser, der
versucht den Code zu verstehen.
Und dem Assembler ist es sowieso wurscht ob du Dezimal oder
Binärschreibweise benutzt (oder die Bits zb mit der 1<<... Syntax unter
Verwendung der Bitnamen aus dem Datenblatt ansprichst oder einen
arithmetischen Ausdruck benutzt um die 15 zb aus der CPU-Frequenz und
dem Vorteiler zu errechnen oder .... Man benutzt die Schreibweise, der
in der vorliegenden Situation die klarste ist und in der die Absicht am
besten rüber kommt. Das ist in manchen Fällen tatsächlich die
Binärschreibweise. Manchmal. Meistens ist sie es aber nicht.