Bon je suis à la bourre (comme d'hab x')) !
@mike118 :
Bon déjà tant mieux pour tes épreuves et merde pour celles qu'il te reste ^^
Par contre, on a travaillé sur les aop l'année dernière et franchement, j'aurai jamais deviné qu'on pouvait faire ce genre de trucs avec ! x')
@swolf :
Pas mal ton schéma ^^ C'est plus clair que le gribouillage de mike118 (bah quoi ? Faut bien que je trouve un truc à critiquer ^^) !

Bon, sinon, pour répondre à ta question :
Hum je ne suis pas sur d'avoir bien compris les problème mais le Bit " start" ça sert à la synchro non ? le pic esclave écoute le le pic maitre. Le pic maitre est silencieux... ( état à 0 ) Le pic esclave attend. Le pic maitre envoit un bit start " état à 1 " <=> " vas y après ça écoute ce que je vais dire ! le pic esclave lance son sous programme d'écoute, le pic maitre commence son message : 0 1 0 0 0 1 1 0 le pic esclave regarde l'état de sortie en cours et la note x1= 0 un fois qu'il la noter il incrément x ça et re écoute la sortie et la note ( et comme 1µs est passé) x2= 1 puis ainsi de suite il a x3=0 x4=0 x5=0 X6=1 x7=1 x8=0 en faisant la même chose que ce que tu proposais mais en prenant plusieurs variables. Dès que le pic esclave a x8 il converti le code de 8 chiffre en PWM home made
donc en gros le maitre aura envoyé 1 = bit start puis 01000110 = code
Si tu as peur du problème de synchronisation avec le bit start on peut définir que l'état doit rester 2µs au lieu de 1µs ça double le temps du message pas je ne pense pas qu'on soit à 20 µs près...
exemple en doublant le temps :
- = état à 1 pendant 1µs
_= état à 0 pendant 1µs
| prise de mesure par le pic esclave
. pas de prise de mesure par le pic esclave
--__--______----__ message envoyé 101000110 temps total 18µs = Bit start +code "1Bit" durant 2µS 9 Bit envoyé.
.....|..|...|...|...|....|..|...| message reçut 01000110 = juste le code une prise de mesure toute les 2µs 8 Bit reçut
J'espère avoir été claire ! vu que la prog c'est pas mon rayon je sais pas si c'est possible mais c'est une suggestion ^^
Et puis le premier Bit étant le bit start on s'en fout le dernier bit au pire si on le perd c'est pas trop grave au lieu de comprendre 85 il comprendra 86 ou 84 et puis comme on commande un PWM la sortie sera casiment celle demandé même en se trompant sur le dernier bit
En fait, il n'y aurait pas vraiment de bit start. Je ne vois que deux moyens pour en faire un : soit utiliser un protocole existant (intégré dans le pic), soit nous servir des interruptions. A vrai dire, dans ce deuxième cas il n'y a pas vraiment de bit start non plus. Cependant, le 10F206 n'intègre aucune de ces deux choses.
Par contre, au niveau des problèmes de synchronisation c'est plus vicieux que ça "^^ En fait, en assembleur, il y a certaines instructions qui se font en un cycle d'horloge (donc qui prennent 1µs) et d'autres qui se font en 2 cycles d'horloges (donc qui prennent 2µs). Toutes les instructions qui prennent 2 cycles sont les instructions qui font "sauter" le programme (exemple "goto").
Mais bon, ça encore c'est gérable puisque le pic maître sait s'il a envoyé un 1 ou un 0.
Vraiment le problème vient du fait que le pic esclave ne sait pas quand commencer à écouter son maître. Après, je pense que la solution de reset tous les esclaves avant de commencer à envoyer le maître peut être gérable mais ça commence à être assez compliqué...
Si l'on veut vraiment se diriger vers cette solution il faudrait que je regarde un peu en simu.
Mais j'avoue que payer 1 ou 2 euros de plus pour avoir un pic plus puissant capable de tout gérer me paraît bien plus simple "^^