@ Fred:
Sorry, aber ich muss da mal zwei Dinge zu sagen:
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.In meinem Beispiel (1. Anlage) habe ich "keine Optimierung (=-O0)" gewählt; typischerweise nimmt man mindestens "-O1".
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.Beim ATmega32 kann man die einzelnen Ausgangspins nicht mit Hilfe von PINx |= PINx "togglen", aber bei den neueren ATmegas geht das!
@ BlackDevil:
Ich würde ein Lauflicht über den ganzen Port so machen:3. Finde ich meine Lösung die Pins an Port B hoch zu zählen nicht sooo Elegant. Ginge das Eleganter?
Code:while (1) { // oder solange Taste gedrückt, oder ähnlichens PORTB <<= 1; if (!PORTB) PORTB = 1; _delay_ms(10); }







Zitieren

Lesezeichen