Bonsoir,
Nouveau petit soucis.
J'essaye d'envoyer des données en série, par liaison filaire entre 2 PICAXE 18M2.
Emetteur :
Récepteur :
Le problème est que je reçois BCDEXBCDEXBCDEX... au lieu de recevoir ABCDEXYZABCDEXYZABCDEXYZ...
Il manque le A et il manque les caractères de la chaine après le 1er.
Cela fait plusieurs soirée que je passe dessus sans voir de solution.
Avez-vous une idée ? Merci.
En fait, si j'ajoute une pause après l'envoi de XYZ, le A apparait bien. J'en déduis que les octets sont perdu car ils arrivent trop rapidement sur le récepteur et le récepteur n'a pas le temps de terminer l'affichage du caractères et de revenir à la commande serin que le caractère suivant est déjà passé.
Comment puis-je faire ? Bufferiser la réception et ne réaliser l'affichage que lorsque plus rien n'arrive sur la liaison série ? Augmenter la fréquence du µC ? Optimiser les routines d'affichage sur LCD ?
Une autre solution plus efficace ?
Guillaume
Nouveau petit soucis.
J'essaye d'envoyer des données en série, par liaison filaire entre 2 PICAXE 18M2.
Emetteur :
Code:
symbol pinout = B.1
debut:
serout pinout, T1200_4, ("A")
pause 1000
serout pinout, T1200_4, ("B")
pause 1000
serout pinout, T1200_4, ("C")
pause 1000
serout pinout, T1200_4, ("D")
pause 1000
serout pinout, T1200_4, ("E")
pause 1000
serout pinout, T1200_4, ("XYZ")
goto debut
Code:
symbol pinin = C.0
symbol car_recu = B2
gosub message_init
pause 5000
gosub LCD_Clear
boucle_principale:
serin pinin, T1200_4, car_recu ' réception d'un caractère
let LCDByte = car_recu
gosub LCD_write
goto boucle_principale
message_init:
let LCDByte = "T"
gosub LCD_write
let LCDByte = "E"
gosub LCD_write
let LCDByte = "S"
gosub LCD_write
let LCDByte = "T"
gosub LCD_write
let LCDByte = " "
gosub LCD_write
let LCDByte = "L"
gosub LCD_write
let LCDByte = "C"
gosub LCD_write
let LCDByte = "D"
gosub LCD_write
return
Il manque le A et il manque les caractères de la chaine après le 1er.
Cela fait plusieurs soirée que je passe dessus sans voir de solution.
Avez-vous une idée ? Merci.
En fait, si j'ajoute une pause après l'envoi de XYZ, le A apparait bien. J'en déduis que les octets sont perdu car ils arrivent trop rapidement sur le récepteur et le récepteur n'a pas le temps de terminer l'affichage du caractères et de revenir à la commande serin que le caractère suivant est déjà passé.
Comment puis-je faire ? Bufferiser la réception et ne réaliser l'affichage que lorsque plus rien n'arrive sur la liaison série ? Augmenter la fréquence du µC ? Optimiser les routines d'affichage sur LCD ?
Une autre solution plus efficace ?
Guillaume
Last edited: