Bonsoir à tous,
La surchauffe de mon neurone me pousse à venir demander de l'aide.
Voici le contexte :
j'ai une "centrale" maitre ( composée d'un écran tactile piloté par un PIC18F87J50 et d'un transceiver 868Mhz) qui dialogue avec 6 modules que j’appelle "satellites" ( transceiver 868Mhz).
Cette centrale demande si le module N°1 est connecté, attend la réponse, si pas de réponse l'affichage reste éteint , si réponse il s'allume pour signaler le module connecté .
Ensuite elle envoi une demande au module N°2 etc ....
Arrivé au 6iéme module elle repart sur le 1 etc ....
La centrale est sur batterie et je dois donc essayer de diminuer un peu la consommation. Actuellement j’envoie une demande toutes 150ms pour avoir un temps correct de réaction. donc comme il y 6 demandes pour faire un tour , cela fait une demande toute 900ms au même module.
Voici l'idée simplifiée générale.
Je souhaiterais trouver un algorithme me permettant de diminuer les demandes si aucun module n'est connecté ; genre 1s entre chaque demande . 1er, attente1S, 2iéme, attente 1s , 3iéme ....... .
Ainsi en l'absence de module connecté je diminuerai la cadence des demandes. Jusque la ça pourrait aller.
Mais j'aimerais qu’une fois qu'un module est connecté, la demande se fasse plus fréquemment sur lui tout en restant longue sur les autres . cela changerais donc l'ordre des demandes ...
Par exemple disons que le module 3 est détecté comme connecté, on obtiendrais :
3, 1, 2, 3, 4, 5, 3, 6, 1, 3, .....
Voila je sais pas si mon explication est claire ! Je ne peux malheureusement pas utiliser un timer de mon PIC pour chaque modules. Peut etre avez-vous déjà utiliser un tel système , un quelques chose s'y rapprochant
Merci de m'avoir lu !
-----