Merde pour tes épreuves (totalement à la bourre).
Bon sinon, j'ai réfléchis à ce que je voulais faire pendant la nuit et j'ai des mauvaises nouvelles :/
En fait, il y a 2 problèmes :
- il faut que les 2 pics soient parfaitement synchro (le pic émetteur doit savoir quand envoyer la salve à la µs près et cela va dépendre de s'il envoie un 1 ou un 0). Donc autant dire que ça risque d'être très dur.
- celui-ci est le plus gros problème je pense : si le pic maître n'est pas totalement synchro et qu'il envoie la salve trop tard, le pic esclave va perdre le premier et le dernier bit. Donc autant dire qu'il ne va pas faire ce que l'on veut. J'ai pensé à plusieurs solutions pour régler ce problème : mettre le pic en mode sleep en attendant la salve (il faut que je vérifie que le 10F206 a cette fonctionnalité et que ce mode peut être désactivé avec une entrée externe), reset les pics (par le pic maître) avant chaque envoie en envoyant un front descendant à /MCLR (sauf que là les pics vont refaire leur initialisation, donc il faut savoir combien de temps elle dure exactement et être synchro avec sa fin... ).
Donc, au vu de ces problèmes, il me paraît nécessaire de changer de pic :/ Donc soit prendre un 16f84a soit un 16f88 (swolf va être content ^^). Le 16f88 pourrait être génial car il intègre directement un langage de communication : l'I²C (après j'avoue que je ne sais pas si c'est la solution miracle "^^).
Qu'est-ce que vous en pensez ?
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