CCS C - probleme de multiplication

Rind -  
emit-fr Messages postés 28 Statut Membre -
Bonjour,

J'ai un gros soucis pour programmer un PIC 16F876A en C...

J'envoie ce code:

int8 m[32][3];
int32 temp;

matrix[0][0] = 100;
printf("%Lu \n", 4096*100);
printf("%Lu \n", 4096*m[0][0]);

temp = m[0][0]*temp;
printf("%Lu \n", temp);

Les trois résultats devraient être les mêmes...
Mais j'obtiens : 409600 16384 16384

Je suis complètement perdu là... Avez vous une idée ?

1 réponse

emit-fr Messages postés 28 Statut Membre 8
 
Bonjour,

Il faut transtyper pour que le compilo "comprenne" que l'on souhaite un résultat sur 32 ou 24 bits dans votre cas !

printf("%Lu \n", (int32)4096*m[0][0]); 


temp = m[0][0]; 
temp *= 100; 
printf("%Lu \n", temp); 


https://www.emit-fr.com/ : Conception électronique
1