@SimLock

Lernen ist immer gut

>Ich habe mich beim Markieren, einfügen verklickt.
ja, hier gibts keinen precompiler

Grundsätzlich C ist eine mächtige Sprache, lesbar wird sie nur - auch für einen selbst - wenn man klar strukturiert und akribisch Ordnung hält. In meinen Augen sollte eine Initalisierung in eine entsp. Funktion z.B. AvrINIT(void) und eben alle Initialisierung oder weitere Aufrufe. Die Portdefinitionen stehen bei mir immer am Anfang, das Ende meist ein sei();


hiermit setzt Du nur ein Bit von PortB
> PortB |= (1 << BIT2);
Löschen wäre
PortB &=~ (1 << BIT2);

hiermit setzt Du den gesamten Port ...
> DDRB = (1 << PB1);

... wenn Du das später im Code auch so machst, wirst Du irgendwann lange nach Fehlern suchen.
Setze lieber immer nur die BIts, die Du wirklich verändern willst.