Dúvida interrupção

Software e Hardware para ATMEL

Moderadores: 51, guest2003, brasilma

Dúvida interrupção

Mensagempor rzingler » 02 Out 2009 23:47

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.
rzingler
Bit
 
Mensagens: 6
Registrado em: 17 Ago 2009 13:17

Mensagempor pseudobyte » 03 Out 2009 09:32

Tenta trocar o while pelo if.

Abraço!
pseudobyte
Bit
 
Mensagens: 40
Registrado em: 17 Out 2006 09:50

Mensagempor rzingler » 03 Out 2009 10:24

Já achei o problema.

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

Agradeço a atenção.
rzingler
Bit
 
Mensagens: 6
Registrado em: 17 Ago 2009 13:17


Voltar para AVR

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x