Moderadores: 51, guest2003, Renie, gpenga
fabim escreveu:...Se botao_inc precionado...
tcpipchip escreveu:Se voce nao declarar como FLOAT, dá o mesmo erro ?
fabim escreveu:Imaginem a seguinte situação.
float data,*ponteiro;
void temp_1khz(void)__IRQ{
Se botao_inc precionado
*ponteiro += 1;
Se botao_dec precionado
*ponteiro -= 1;
}
int main(void){
X
X
X
ponteiro = &ponteiro;
while(1){
xxx
xxx
xxx
neste ponto eu vou usar a variavel data;
xxx
xxx
xxx
xxx
}
}
Vejam que tem uma maquina de estados infinita no main, e que a cada uma volta ela vai fuçar na variavel data;
PERGUNTA:> Por que, raioz de motivos!?
Se o main estiver manipulando DATA, e acontecer a interrupção de 1khz, e esta incrementar ou decrementar o *ponteiro.
Acontece o DAbtHandler ?
Lembrando que o DABT acontece quando tenta acessar um endereço inacessivel, ou escrever algo na flash.
rodrigo !!!
Disfarça,
ponteiro = &data !!!
fabim escreveu:rodrigo !!!
Disfarça,
ponteiro = &data !!!
incrementando o valor, e não posição na ram.
fabim escreveu:intão polesapart.
Fiz um teste simples, e criei dois flags flag_inc, flag_dec.
La no main, eu vejo se inc ou dec esta a um, e eu somo ou subtraio 0.1 nos setpoints....
Eu sempre trabalho com maquina de estados em coisas que necessitam de **** confiabilidade...
E todas as variaveis possuem OLD_VALOR, e são tratadas somente se atual diferente de OLD..
Assim o refresh dos valores no display fica putaquepariumente rapido, e simples!!!
me add no msn, que depois te mostro um vidiozinho de como ficou.
fableach@hotmail.com
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante