Bonjour,
je suis en train de faire un programme en C pour 16F877 qui utilise le CAN.Comme vous le savez le can sort un résultat sur 10 bits c'est pourquoi je fais la chose suivante(ADFM=1 donc justification à droite):
int i,a,b;
int16 off,out;
// et plus loin
a=ADRESH;
a=a<<8;
b=ADRESL;
out=ADRESH;
out=a+b;
//comme ça j'ai le résultat sur 16 bits
//ensuite:
PORTB=out; //LSW
PORTD=out>>8; //MSW
Pourquoi je n'arrive pas à récupèrer ADRESL et ADRESH?
Je sais le programme est un peu bête car je pourrais sortir directement ADRESH et ADRESL mais le but de mon programme est de soustraire une valeur au résultat de la conversion avant de sortie sur les port B et D.
Mais avant cela je veux m'assurer que je peux déjà récupèrer la conversion sans aller plus loin.
Quelqu'un pourrait-il me dire comment faire pour résoudre ce problème?
Cordialement
-----