Hi,

mir fallen 2 Sachen auf:
- Du hast die Variable Wert nicht initialisiert. Das sollte z.B. so aussehen:
Code:
uint8_t Wert = 0
Dies sollte auch außerhalb der while-Schleife stehen.
- Du hast keine Pause zwischen dem Setzen und dem Rücksetzen eines Ports. Das scheint den Compiler dazu veranlassen, den ersten der beiden Befehle wegzuoptimieren (Ich hab's mal im AVR-Simulator nachgestellt, dort war es so).
Am einfachsten setzt Du hier folgende Zeile zwischen die beiden Befehle.
Code:
asm volatile("nop");
Dies veranlasst den Compiler, zwischen den Beiden Port-Operationen einen NOP-Befehl (no Operation) einzufügen, was einem Takt warten entspricht. Im Simulator hat dies so funktioniert.

Gruß,
askazo