M
muoinhohn
Guest
Ciao a tutti
Io uso Proteus v7.1 SP2 per simulare ATmega32.
Il mio programma di test è semplice:
--------------------------------------
# Include <avr/io.h>
int main ()
(
ek galleggiante;
signed char i, j;
while (1)
(
i = Porta;
ek = i - 2;
if (ek <2) (j = 0; ek = 10
altro j = 1;
)
return 0;
)
----------------------------------------------
Quando uso AVR Studio per simulare, tutto è ok:
* Variabile i è sempre uguale a 0
* Ek ha valori 10, 8, 6, 4, 2, 0
* J variabile è stato 0 o 1
Ma quando io uso Proteus, la variabile j è sempre uguale a 1.Ciò significa che l'equazione (ek <2) è sempre false.
Lo stesso programma come sopra, ma posso cambiare "float EK" a "firmato ek int", quindi è tutto ok in AVRStudio e Proteus troppo.
Chiunque mi può aiutare a spiegare questo problema.
Grazie in anticipo
Saluti
Muoinhohn
Io uso Proteus v7.1 SP2 per simulare ATmega32.
Il mio programma di test è semplice:
--------------------------------------
# Include <avr/io.h>
int main ()
(
ek galleggiante;
signed char i, j;
while (1)
(
i = Porta;
ek = i - 2;
if (ek <2) (j = 0; ek = 10
altro j = 1;
)
return 0;
)
----------------------------------------------
Quando uso AVR Studio per simulare, tutto è ok:
* Variabile i è sempre uguale a 0
* Ek ha valori 10, 8, 6, 4, 2, 0
* J variabile è stato 0 o 1
Ma quando io uso Proteus, la variabile j è sempre uguale a 1.Ciò significa che l'equazione (ek <2) è sempre false.
Lo stesso programma come sopra, ma posso cambiare "float EK" a "firmato ek int", quindi è tutto ok in AVRStudio e Proteus troppo.
Chiunque mi può aiutare a spiegare questo problema.
Grazie in anticipo
Saluti
Muoinhohn