1
Vos projets / Re : RailCom: Générateur de CutOut avec booster
« le: mai 30, 2024, 01:24:37 pm »
Bonjour
Mes tests se poursuivent (mais le temps manque pour avancer aussi rapidement que souhaité!)
Pour des raisons de commodité j'ai porté aussi le code vers les AVRx ( AVRDx et Atmega serie0 x08 & x09).
Je me suis aussi aperçu à cette occasion d'une simple modification dont les effets de bords sont plus qu'appréciables et dont je vais devoir aussi consacre du temps de test.
En effet il ne s'agit ni plus ni moins que de pouvoir porter pour un décodeur mobile ( dit décodeur de fonctions) la capacité à emmètre des trames de messages railcom.
Le mécanisme d analyse de la trame DCC est similaire à celui déjà mis en œuvre dans cet exemple pour placer au bon moment la fenêtre CUTOUT et les actions qui en découlent.
Ici un noInterrupt() vient lors des conditions de mise en œuvre du cutout suspendre toutes les interruptions. avant de les rétablir une fois le fenêtre cutout close.
Si pour le booster ce mécanisme est suffisant pour laisser un blanc dans la trame d'émission, cela rend impossible d'utiliser d'autres interruptions pourtant nécessaires à d'autres usages dont justement Serial pour emmètre les trames de messages RAILCOM pour un décodeur mobile par exemple.
Quelle est la magie derrière? Juste une utilisation judicieuse/astucieuse des ressources des CPU et de leurs librairies.
Mon implémentation actuelle est "en dure": comprendre que j'ai volontairement choisi des attributions de broches de manière fixe et placer les alias dans le code. Aussi le mapping n'est pas dynamique avec l'utilisation de certaines ressources. Cela ne semble pas être un frein outre mesure, juste une contrainte de design de routage de PCB au plus et une portabilité réduite de la solution.
Cela fera peut-être l'objet d'un axe d'évolutions futures mais je n'ai pas trop envie de m'aventurer dans cette voie pour le moment. Si certains veulent s'en occuper... je n'ai rien contre! Bien au contraire même!! Et il faudra alors créer le post qui va bien pour discuter de cette solution... et de ses déclinaisons/usages
Mes tests se poursuivent (mais le temps manque pour avancer aussi rapidement que souhaité!)
Pour des raisons de commodité j'ai porté aussi le code vers les AVRx ( AVRDx et Atmega serie0 x08 & x09).
Je me suis aussi aperçu à cette occasion d'une simple modification dont les effets de bords sont plus qu'appréciables et dont je vais devoir aussi consacre du temps de test.
En effet il ne s'agit ni plus ni moins que de pouvoir porter pour un décodeur mobile ( dit décodeur de fonctions) la capacité à emmètre des trames de messages railcom.
Le mécanisme d analyse de la trame DCC est similaire à celui déjà mis en œuvre dans cet exemple pour placer au bon moment la fenêtre CUTOUT et les actions qui en découlent.
Ici un noInterrupt() vient lors des conditions de mise en œuvre du cutout suspendre toutes les interruptions. avant de les rétablir une fois le fenêtre cutout close.
Si pour le booster ce mécanisme est suffisant pour laisser un blanc dans la trame d'émission, cela rend impossible d'utiliser d'autres interruptions pourtant nécessaires à d'autres usages dont justement Serial pour emmètre les trames de messages RAILCOM pour un décodeur mobile par exemple.
Quelle est la magie derrière? Juste une utilisation judicieuse/astucieuse des ressources des CPU et de leurs librairies.
Mon implémentation actuelle est "en dure": comprendre que j'ai volontairement choisi des attributions de broches de manière fixe et placer les alias dans le code. Aussi le mapping n'est pas dynamique avec l'utilisation de certaines ressources. Cela ne semble pas être un frein outre mesure, juste une contrainte de design de routage de PCB au plus et une portabilité réduite de la solution.
Cela fera peut-être l'objet d'un axe d'évolutions futures mais je n'ai pas trop envie de m'aventurer dans cette voie pour le moment. Si certains veulent s'en occuper... je n'ai rien contre! Bien au contraire même!! Et il faudra alors créer le post qui va bien pour discuter de cette solution... et de ses déclinaisons/usages