Я пытаюсь мигать светодиодом на плате TI MSP430 Launchpad. У меня есть два кода. Один работает, а другой - нет. Единственная разница - включение ключевого слова volatile в рабочую версию. Почему это ключевое слово необходимо для выполнения программы?Неустойчивое ключевое слово - MSP430
Этот код работает ...
void main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
// Configure Port Directions
P1DIR |= 0x01; // 0000 0001
volatile unsigned int i;
for(;;)
{
P1OUT ^= 0x01; // Set P1.0 LED on
for (i = 20000; i > 0; i--); // Delay
}
}
Хотя этот код не ...
void main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
// Configure Port Directions
P1DIR |= 0x01; // 0000 0001
unsigned int i;
for(;;)
{
P1OUT ^= 0x01; // Set P1.0 LED on
for (i = 20000; i > 0; i--); // Delay
}
}