Page 1 of 1

Problème de lecture avec la fonction "SPI_get_char"

Posted: Sun Jan 22, 2012 4:03 pm
by cyke66
Bonjour,
Je cherche à établir une communication entre un capteur de température TC72 et un PIC 16F877 via une liaison SPI.
Je peux écrire sans problème dans les registres du TC72 avec la macro « SPI_send_char » de Flowcode, par contre je ne peux lire les valeurs des registres avec la macro « SPI_get_char » : La valeur reçue est constamment 0x5A (90 en décimal) !
La simulation détaillée pas à pas sous « ISIS » montre que le dialogue entre les deux composants est correct et que les valeurs attendues circulent bien sur le bus SPI. Mais malheureusement lors de l’exécution de la macro « SPI_get_char », le registre « sspbuf » conserve la valeur 0x5A : Il ne semble être mis à jour avec la valeur de l’octet reçu qu’après sa sortie de la macro !
Est-ce que j’utilise mal la macro « SPI_get_char » ?
Mon programme est-il erroné ?
Confirmez-vous mes observations ?
Merci de votre aide…
Cordialement

Re: Problème de lecture avec la fonction "SPI_get_char"

Posted: Sun Jan 29, 2012 3:22 am
by Spanish_dude
Salut,

Tu as essayé de lire les différents registres individuellement au lieu de les lires tous en une fois ?
Tu pourrais aussi essayer d'ajouter un delay après chaque TC72, juste pour laisser un tout petit instant au chip de s'activer.
Un truc que tu pourrais faire, vu que la mise a jour du registre ne se fait qu'après un get_char, utilise cette fonction avec une variable inutile rien que pour que le registre ai la bonne valeur.

Nicolas

PS: Si tu as un oscilloscope pour vérifier si les données sont bien envoyé/reçu ça t'aidera énormément.