Hi,
mir fallen 2 Sachen auf:
- Du hast die Variable Wert nicht initialisiert. Das sollte z.B. so aussehen:
Dies sollte auch außerhalb der while-Schleife stehen.Code:uint8_t Wert = 0
- 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.
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.Code:asm volatile("nop");
Gruß,
askazo
Lesezeichen