Bonjour à tous,

J'avance dans mon projet et je vien de trouver un problême dans un programme. Mais je n'arrive pas à résoudre

Ma carte pilote un robot qui a de multiple fonctions, mais pour le faire avancer je dois commander un PIC16F690 en mode Esclave. Il n'y a pas si longtemps que cela j'était venue vous poser des questions sur un problême de la commande des servo moteurs. Ce point est eclairci car c'est mon collègues qui avait fait une erreur de le cahier des charges donc evidement sa avait posé un problême.

Mon problême ojourd'hui est le suivant
Je viens de refaire le programme de commande des servo moteurs
mais j'ai un souci au niveau de l'I²C.

Quand je veux commander le PIC je dois avoir un problême dans la gestion de reception du PIC16F690. Je m'explique

Pour tester la fonction j'envoie en boucle la commande avancer et je vérifie à chaque fois si mon PIC maître a bien envoyé la commande grâce à un indicateur ( LED !!!)

Mais seulement quand je l'ance l'apllique mon Maitre n'envoie qu'une seul fois la commande et après il se bloque car il est en attente du Acknowledge que l'esclave n'envoie pas

Donc je suis allé regarder dans la Datasheet et je me suis aperçu que il y a certaine condition pour que l'acknowledge de soit pas envoié donc je me dit que sa doit venir de là.

Donc depuis ojourd'hui j'ai fais plusieurs tentatives mais sa ne fonctionne toujours pas
Donc je me demandé si quelqu'un pourrai me donner un petit coup de pouce car mes recherche sur le net non rien donné de très significatif pour moi

Je rapelle, la seul chose que doit faire le PIC esclave c'est recevoir une donnée correspond à la commande des servo moteurs

Ci-dessous je vous donne la dernier version que j'ai essayé pour pouvoir géré la reception

void Gestion_Reception (void)
{
GIE = 0; //Inhibe les interrutpions
if ( SSPIF )
{

if(!RW && BF) //RW=0 et BF=1
{
CDE_SERVO=SSPBUF; //Contient la valeur de commande
}
else if (RW && !BF)
{
ADD_I2C = SSPBUF;
}
}
SSPIF = 0;
Cmd_Moteur(); //Détermine l'action à effectuer
GIE = 1;
}
En vous remerciant d'avance pour votre aide
cordialement
Paulochon