Página 1 de 1

Dúvida interrupção

MensagemEnviado: 02 Out 2009 23:47
por rzingler
Olá pessoal.

Estou com dúvidas em relação ao seguinte trecho de código:

while(pos_atual != 5300){
lcd_gotoxy(16,2);
mostra_medida(pos_atual);
}

A variável "pos_atual" é global, sendo incrementada numa rotina de interrupção externa. O que acontece é o seguinte: se eu deixar o corpo do while vazio, ou seja, simplesmente esperar que a variável seja igual a 5300, ela não atinge este valor. Entretanto, fazendo a atualização do display percebe-se a atualização da variável até que atinja o valor 5300. Alguém teria uma idéia do que pode ser?
Uso o compilador GCC (Winavr 20090313).


Muito obrigado.

MensagemEnviado: 03 Out 2009 09:32
por pseudobyte
Tenta trocar o while pelo if.

Abraço!

MensagemEnviado: 03 Out 2009 10:24
por rzingler
Já achei o problema.

Foi só declarar a variável com o modificador "volatile".

Agradeço a atenção.