Oui ce sont bien toutes les valeurs qui sont a 255, du moins celle de b0 à b7 . je l'ai testé avec un debug a la place d'un sertxd . J'ai également enlevé tout ce qui est inutile dans le programme .commence à voir si ce sont toutes les valeurs qui sont à 255, et enlève ce qui est inutile.
Le loop est juste en dessous , en faite je compte dans la boucle !ne manque il pas un loop entre ces 2 lignes , si veut reboucler tant qu'on a rien reçu ?
Une commande bloquante est bloquante ! si le µC attends une info il ne peut gérer en même temps une liaison I2C.Déduction , la commande bloquante RFin , empêche la lecture correcte de son scratchpad ou quelques chose du genre. Après réflexion je pense que le mode multi-maitre avait un peu le même genre de problématique .
Je vais donc tout reprendre pour essayer d'utiliser un serout ou un hserout ? il faut que je transforme le hard , car je n'avais pas prévu ça ; Un conseil ! hserout ou serout ?
Oui , je pensais qu'on pouvait quand même avoir accès a sa mémoire strachpad . au moins la lire ! et ben non . Oui je vais donc utiliser hserout , car ca va être la même chose avec hserin je suppose? Je ne suis vraiment pas calé sur differents moyen s de transmissions et leur focntionnement ;si le µC attends une info il ne peut gérer en même temps une liaison I2C.
*Tu n'avais pas une ligne busy en liaison directe qui te synchronisait ?
ta liaison B2 - B0 sert à quoi ?Je n'avais pas lus ton édition . Qu'est ce qu'une ligne "busy" ( occupé en anglais) . ?
relire #125 "Utilise hserout et hserin à haut débit."et transmettre avec un serout ? qu'en pense tu ?
Elle me sert a detecter quand une info est passée , c'etait mon flag de MAJ dans l'ancienne version . si qui me sert aussi a compter quand je n'ai plus de com . dessus une led est branchée , ainsi visuellement elle me sert a voir quand mon Récepteur est bloqué ou non .ta liaison B2 - B0 sert à quoi ?
Oui oui , mais du coup, j'avais fais ma plaquette avec un 28X2, pensant utilisé l'i2c . Étant donné que le multi-maitre est bancale , je ne vais plus l'utiliser ( l'i2c), donc le 28X2 n'as plus lieu d'etre . Je ne peux pas refaire ma plaquette d'essai, mais dans le futur je passerais donc avec un 14M2 ( qui ne prends pas le Hserout je crois), donc autant ne pas le faire avec la plaquette d'essai ?relire #125 "Utilise hserout et hserin à haut débit."
#PICAXE 28X2
'#################################################################################
'########################## Programme 28X2 RX #############################
'#################################################################################
'######################### Configuration des I/O ##########################
'b0 a b7 pour les communications
'######################## Initialisation ########################
setfreq m8
hsersetup b115200_8,%01
hi2csetup i2cslave, %10100000 ' Met le 28X2 en Esclave
'#################################################################################
'########################## Programme Principal ############################
'#################################################################################
do
low B.2
RFin C.5,b0,b1,b2,b3,b4,b5,b6,b7 ' Enregistre les donnees du RX
High B.2
hserout 0,(b0,b1,b2,b3,b4,b5,b6,b7)
loop
#PICAXE 20X2
'#################################################################################
'########################## Programme 20X2 Slave #############################
'#################################################################################
'######################### Configuration des I/O #########################
'b0 a b7 pour les communications
Symbol flag_Rx = PinB.0
Symbol Tx_video = PinC.7
Symbol V_moteur = b3
Symbol V_dir = b5
Symbol Compt_err = b9
Symbol mem_Vitesse = b10
Symbol Compt_Vitesse = b11
Symbol mem_Diff = b12
Symbol Compt_Diff = b13
Symbol flag_Diff = bit4
Symbol flag_Vitesse = bit5
Symbol SD_20 = %11000010
Symbol Rx = %10100000
'########################### Initialisation ############################
setfreq m8
hi2csetup i2cmaster, %11000010, i2cfast_8, i2cbyte ' On passe en maitre avec le SD20 en esclave
read 0,mem_Vitesse,mem_Diff ' On lit dans l'EEprom, les valeur de vitesse et diff enregistrees
'#################################################################################
'########################## Programme Principal ############################
'#################################################################################
do
low C.1 ' Led Orange
do while flag_Rx = 0 ' on reboucle tant qu'on a rien recu
Compt_err = Compt_err + 1 max 255 ' incremente le compteur d'erreur
if Compt_err >= 254 then
gosub Escape ' au bout d'un certain temps on va arreter
exit ' Apres le retour d'un arret on sort de la boucle
end if
loop
High C.1
Compt_err = 0 ' Raz du compteur
pause 3 ' Pour laisser le temps d'ecrire dans le scratchpad duRX
get 0,b0,b1,b2,b3,b4,b5,b6,b7
loop
'#################################################################################
'########################## Programme Secondaire ###########################
'#################################################################################
Escape:
high C.0 ' led Rouge
do loop while flag_Rx = 0 ' On reste la tant qu'on recoit rien
Low C.0
return
J'ai oublié de l'enlever, la laision i2C n'est plus d'actualité, comme je n'y suis pas arrivéPourquoi mettre le 28X2 en esclave
Car du temps de la fabrication de la plaquette d'essai le communication prévue était l'i2c, mais je n'ai pas réussis a faire une com fiable ( drone dans le mur sans explication , le moteur est reste bloqué a fond), je ne peux pertinemment pas présenter ca!pourquoi une liaison I2C avec le 20X2
Je savais pas qu'il en fallait une . D'après ce que j'ai compris , avec hserout , le 28X2 ecrit directement dans le scratchpad du 20X2 !pourquoi il n'y a aucune configuration hsersetup pour le 20X2 !?
a 9600 le hserout dur 8ms , beaucoup trop long , a 115200 cela dur 1.7ms . c'est du grosso modo a l'analyseur, car je calcule entre chaque front montant et descendant de la led , donc c'est certainement un peu plus court en vrai. l'espace entre deux émission ( par la télécommande) est de un peu moins de 41ms . je dois donc être plus rapide a la réception . bien sur je pourrais "ralentir" mon émission mais ce n'est vraiment pas le but , car je perdrais directement en réactivité . C'est pourquoi je ne dois pas dépassé les 40ms dans le programme receptionet il n'est peut être pas nécessaire de monter à 115200 bauds !
je ne suis pas a l'aise avec cette fonction . ( avec pas beaucoup d'ailleurs) ; faut-il configurer le hserin sur le 20X2 même si je l'utilise pas ?pourquoi il n'y a aucune configuration hsersetup pour le 20X2 !?
Mais réfléchis ! Et comment le 20X2 sait a quel débit et avec quelle parité arrivent les infos et ou les mettre!Je savais pas qu'il en fallait une . D'après ce que j'ai compris , avec hserout , le 28X2 ecrit directement dans le scratchpad du 20X2 !
ben bien sûr que tu l'utilises mais en mode background.faut-il configurer le hserin sur le 20X2 même si je l'utilise pas ?
Le hserflag fonctionne comme le Hi2cflag. Il est mis à 1 dès réception de données. C'est à l'utilisateur de le remettre à 0.Merci PieM ,
effectivement en rajoutant le hsersetup sur le 20X2 aussi, y'a du mieux .
J'essaye de comprendre le hserflag ? Comment est-il remis a zéro c'est on travaille ne tache de fond ? pourrais je m'en servir comme le hi2c flag ?
Je crois qu'il est remis a zero mais je fais quand même le testEn mode réception automatique en tâche de fond, les paramètres du port entrée série sont totalement automatisés. Le flux de données séries reçu est directement sauvegardé dans le scratchpad. Prioritairement sur la commande hsetup, le pointeur série (hserptr) est remis à 0 . Lors d’une réception de donnée, celle-ci est transférée à cette adresse du scratchpad, la variable hserptr est incrémentée, et le drapeau hserinflag est activé (il devra être manuellement désactivé par le programme utilisateur).
la doc dit qu'il est remis à 0 par la commande HSRSETUP, c'est à dire à l'initialisation.Je crois qu'il est remis a zero mais je fais quand même le test
Oui c'est exact , je trouve la traduction pas très clair la dessus ! . Enfin ce n'est que mon avisla doc dit qu'il est remis à 0 par la commande HSRSETUP, c'est à dire à l'initialisation.
Comme ta transmission se fait sur la même platine, sans câblage, les risques sont faibles.Si ca continue de fonctionner , je garderais donc cette méthode. verrai-tu un quelconque bug qui pourrais arrivé ? est il possible qu'une erreur de transmisison sur le bus puisse arriver si la vitesse est trop rapide par exemple ?
Non pas tout a fait ! Ta phrase est elle tournée, d'une façon affirmatif ou c'est ce que tu propose ?Tu envoies tes données I2C au SD20 pendant que tu reçois le RFIN; il n'y a pas de comm Serout à ce moment.
Ok car il en question deux fois dans le manuel Fr . Une petite erreur je pensehserinflag n'existe pas.
Je ne crois pas . il accepte directement la tension de la batterie même a pleine charge . ( je l'ai fais une paire de fois avec le prototype .Cela dit, si vous avez besoin d'un étage de régulation pour ne pas cramer votre émetteur
Comme déjà dit par Michel, cette résistance n'est pas forcément nécessaire. Elle n'est fonction que de la capacité de grille du MosFet.Merci , je rajouterais donc une R de 1K en serie sur la gate
Oui, je verrais ce que j'ai dans mes tiroirs et je vous l'indiquerais , pour une éventuelle confirmation.Mais sans connaître le type de MosFet, difficile de déterminer ce qu'il faut
Vu le schéma, j'ai comme un gros doute là... d'autant qu'il n'y a qu'une seule batterie (#154) ...Remarque: il n'y a aucune masse commune entre ton émetteur et ton circuit picaxe j'espère.
Si .Remarque: il n'y a aucune masse commune entre ton émetteur et ton circuit picaxe j'espère.