Bonjour a tous, je rencontre actuellement des soucis avec deux PIC. L'idée est la suivante, Le PIC A envoie une pulse de 20 ms puis une trame au PIC B une interruption sur le PIC B est faite via la broche RB0. Si la pulse mesuré par le PIC B est bien de 20ms alors le PIC B va traité la suite des données.
La trame complète comprends une pulse de départ de 20 ms, une adresse sur 8 bits, un premier ordre sur 8 bits et un second ordre non utilisé sur 8 bits.
Le problème c'est que si tout est OK le PIC B doit créer un rapport cyclique sur le PORTA broche 0 et il ne le fait pas du tout.
Explication de la photo : pendant la pulse de 20 ms on compte si il y a 4 pulse bleu c'est OK , si moins ou plus le traitement s'arrète la. La cinquième pulse bleu est ignoré.
A partir de la sixième pulse bleue on recopie l'état du PORTB broche 0 a chaque pulse et on les range dans un tableau nommé : tableau_reception
Une fois le traitement terminer la fonction triage_trame() s'occupe de comparer les 3 parties du tableau_reception avec les tableaux : tableau_adresse, tableau_ordre1 et tableau_ordre2. A chaque fois que une des cases du tableau et égale on incrémente les variables :adresse_reception, code_reception1 et code_reception2.
Une fois le traitement terminer il ne reste plus qu'a comparer les variables adresse_reception, code_reception1 et code_reception2 pour activer ou non la suite du programme. Sauf que rien ne fonctionne. Le programme n'active pas le port A0 ou le port A1 (selon la trame envoyé). Les PIC sont des 16F1827.
Pour le moment la liaison entre les pic et un fil.
Des idées?
cordialement
-----