Gast
#181268
hallo, ich glaube ein problem mit volatile in verbindung mit delay loops (z.b. _delay_us()) im avr gcc gefunden zu haben. der angehaengte code tut nicht das, was er meiner meinung nach tun sollte - das delay stimmt einfach nicht immer. mit der mit 'nicht ok' markierten zeile funktionierts nie, mit der 'ok' markierten zeile funktionierts, wenn ich die optimierung auf s schalte - ohne optimierung funktionierts nie... nicht funktionieren heisst: an nen logic-analyzer angeschlossen sieht man, dass das delay scheinbar beliebig (auf jeden fall viel zu lang) ist...unabhaengig vom wert von val. verwende das aktuelle WinAVR von avrfreaks... ach ja, volatile, weil auch aus einer interrupt-routine darauf zugegriffen wird - ich hab den code nur der uebersichtlichkeit halber aufs notwendige reduziert. kann das ein compiler-bug sein oder versteh ich irgendwas nicht?