Wie macht der GCC die Portzugriffe, das diese nicht wegoptimiert werden?
1 | DDRB &= ~(1 << PB0); |
So ist es ausreichend. Von der C Sprache ist es ein Speicherzugriff, der nicht optimiert werden darf und dadurch ist volatile als Schlüsselwort notwendig. Ich habe gerade das Problem bei einem anderen Compiler und will es verstehen, wie der GCC es hinbekommt.
1 | *((volatile int*)0x2)=0x2; |