Très bizarre : d'après la table 6 page 23
RF_ConfigIndex n'a qu'une seule valeur possible : 1
Voir la petite note en bas de la page 12 :
2 Not yet implemented in firmware.
3 Not yet implemented in firmware.
4 Not yet implemented in firmware.
Ca peut le faire... mais pas tout de suite...
Quoiqu'il en soit, vous ne pouvez rien changer tant que vous n'avez pas les pré-requis. (voir #20)
Donc en attendant d'optimiser, vous pouvez déjà vous consacrer aux programmes de tests, en particulier à la mesure de la bande passante effective et à la détection de perte de trame...
Pour le reste vos analyses me semblent OK.
Notez que l'allumage de la LED bleu signifie que vous calmez le jeu : donc vous ne perdez rien...
Vous transmettez au max possible, c'est tout.
Notez qu'en fonction des conditions de transmission, la bande passante va varier.
Il faut vous attendre a avoir une télécommande très réactive dans de bonnes conditions, et un peu molle dans les cas de transmission difficile (parasites, distance, obstacles...)
Impossible de dire pour le moment à partir de quand ça va se sentir : c'est le but des essais...
En outre, plus la trame est courte, plus la fiabilité est au rendez-vous.
D'où l'intérêt de concocter une trame aux petits oignons...
Avec des trames de 6 octets vous en passez 100 par seconde à 4800 bauds
A 9600 bauds en radio, vous pouvez éventuellement faire mieux à courte distance, mais ça n'a aucun intérêt.
Par contre, dans les conditions difficiles, ça risque de devenir catastrophique...
A mon avis avec 25 trames/s votre télécommande doit déjà être pas mal réactive...
NB : pour ne pas nuire à la réactivité, il faudra supprimer les pauses à l'émission :
Code:
if RTS = 0 then
LOW LED
serout 0,N9600_8,(1,2,3,4,5,6,7,8)
pause 100 ' à remplacer par les READADC et calculs associés
else
HIGH LED
' pause 50 inutile : à supprimer !
' comme ça dès que RTS est OK on envoie immédiatement les données
end if
A noter que l'on peut supprimer dans cette boucle critique les HIGH et LOW
en câblant la LED directement sur le transceiver.
Du coup, le potar de réglage de vitesse est inutile : on va partir dans l'idée que l'on transmet toujours à fond :
c'est le transceiver qui calmera le jeu si nécessaire...
Code:
do
readADC10 ... ,w2
readADC10...,w3
if RTS = 0 then
inc w1
serout 0,N9600_8,(w1,w2,w3)
end if
loop
YADUTAF, sans parler de tout le reste bien sur...