> Ich hab das Programm abgeändert (s.o), doch es funzt immer noch
nicht.
> Der Port OC1A ist jetzt dauer High.
Hmm, lies doch mal das Datenblatt ein bisschen... Der ATtiny26
scheint sich hier um einiges anders zu benehmen als andere AVRs,
d.h. du kannst PWM-Code, der für einen anderen AVR geschrieben worden
ist, nicht 1:1 übernehmen.
M. E. musst du insbesondere OCR1C noch auf einen sinnvollen Wert
setzen (Datenblatt S. 74 unten, Formel für PWM-Frequenz S. 76 unten).
>> Außerdem definiert man main() nicht void. ;-)
> Ist avr-gcc nach C-Norm eine "hosted implementation" oder
> "free-standing"?
It depends. Mit der Option -ffreestanding wird er letzteres.
Allerdings sollte man sich sehr genau überlegen, ob man das wirklich
will. Naturgemäß könnte man für einen Controller ja immer erstmal
sagen: ,,Ist doch freestanding, keine Frage!'', aber man hat ja auch
eine Standardbibliothek, auf die man zurückgreifen möchte. Im hosted
mode (der der Default ist beim GCC) kann der Compiler bestimmte
Optimierungen vornehmen basierend auf impliziten Annahmen über das
Verhalten von Standardfunktionen. Das ist manchmal gar nicht so
schlecht. Man kann simpel einen Sack voll Variablen jeweils mit
memcpy() kopieren, wenn diese aber klein genug sind und der Compiler
gerade Register frei hat, kann er stattdessen auch gleich die Kopie
selbst vornehmen.
Falls man C++ machen möchte, hat man eh' keine Wahl, dort ist
-ffreestanding nicht zulässig.
> Bei letzterer ist nicht festgelegt, wie main() auszusehen hat. Es
> ist nicht mal festgelegt, daß es die überhaupt geben muß.
Ja, wo fängt man dann eigentlich an. ;-)
Die avr-libc-Umgebung geht stets davon aus, dass ein main() gerufen
wird.