0

次のCコードがあります。

#include <avr/io.h>
int main(void) {
DDRA = 0xFF;
PORTA = 0x00;   
while(1) {
    /*volatile*/ unsigned long int counter;
    for (counter=0; counter<14285L; counter++) {
        PORTA = ~PINA; // run to cursor here
    }
}
return(0);
}

このコードは、Atmega128 マイクロコントローラ ボードで使用する可能性があります。

コメントされた「揮発性」という言葉に気づきました。「volatile」をコメントアウトして Atmel Studio でシミュレートすると、19 サイクルで実行されます。コメントされていない場合、46 サイクルで実行されます。

なぜ大きな違いがあるのですか?

4

1 に答える 1