@ Fred:
Sorry, aber ich muss da mal zwei Dinge zu sagen:
In meinem Beispiel (1. Anlage) habe ich "keine Optimierung (=-O0)" gewählt; typischerweise nimmt man mindestens "-O1".
Wenn man die Funktionen aus util/delay.h verwenden will, ist es sehr wichtig, die Optimierungen einzuschalten. Bei einer halbwegs aktuellen AVR-Libc bekommt man ansonsten auch eine entsprechende Warnung beim Compilieren.
Beim ATmega32 kann man die einzelnen Ausgangspins nicht mit Hilfe von PINx |= PINx "togglen", aber bei den neueren ATmegas geht das!
Auch bei neueren ATmegas klappt das so nicht. Mit "PINx |= PINx" bekommt man den Ausgang nur von 1 auf 0, aber nicht wieder zurück.
@ BlackDevil:
3. Finde ich meine Lösung die Pins an Port B hoch zu zählen nicht sooo Elegant. Ginge das Eleganter?
Ich würde ein Lauflicht über den ganzen Port so machen:
Code:
while (1) { // oder solange Taste gedrückt, oder ähnlichens
PORTB <<= 1;
if (!PORTB)
PORTB = 1;
_delay_ms(10);
}
Lesezeichen