Auteur Sujet: BAL analogique, interruptions  (Lu 2203 fois)

Marc-Henri

  • Full Member
  • ***
  • Messages: 169
    • Voir le profil
    • Modélisme ferroviaire & électronique
BAL analogique, interruptions
« le: janvier 20, 2022, 08:43:15 am »
Bonjour à tous,

J'aimerais tout d'abord adresser un grand bravo à Christian pour les 2 articles sur le BAL analogique à 4 et 8 relais. Ce sont d'excellents 2ème projets à réaliser après les animations lumineuses, un débutant devrait y trouver son bonheur et la motivation d'aller plus loin.

En lisant le programme, j'ai découvert l'existence de la librairie PinChangeInt et cela m'interpelle car je n'ai pratiquement jamais utilisé d'interruptions dans mes projets. Seul mon projet en cours de gestion de ligne à crémaillère sur Attiny 45 a une routine d'interruption sur un timer pour recréer la fonction millis et envoyer des traces à l'oscilloscope. J'ai besoin d'un timing très précis dans ce cas, l'interruption est donc indispensable.

On aboutirait au même résultat en scrutant régulièrement les ILS dans le programme principal ou dans une routine d'interruption unique attachée à un timer. Le processeur tourne suffisamment rapidement pour ne pas manquer les changements d'états des ILS, pour autant qu'il n'y ait pas d'attente bloquante dans le programme principal. Le mode scrutation a l'avantage d'éviter l'accès concurrent aux variables partagées avec la routine d'interruption.

Très bonne journée à tous.

Tony04

  • Sr. Member
  • ****
  • Messages: 492
    • Voir le profil
Re : BAL analogique, interruptions
« Réponse #1 le: janvier 20, 2022, 11:18:18 am »
Bonjour Marc-Henri,

un grand merci pour ce partage qui ouvre effectivement pas mal de perspectives.
Par contre cette librairie est obsolète et remplacée par celle-ci (plus rapide selon GreyGnome: https://github.com/GreyGnome/EnableInterrupt

Je vais la tester immédiatement.

Cordialement
Antoine

chris_bzg

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 257
    • Voir le profil
Re : BAL analogique, interruptions
« Réponse #2 le: août 30, 2022, 10:27:49 am »
...
On aboutirait au même résultat en scrutant régulièrement les ILS dans le programme principal ou dans une routine d'interruption unique attachée à un timer. Le processeur tourne suffisamment rapidement pour ne pas manquer les changements d'états des ILS, pour autant qu'il n'y ait pas d'attente bloquante dans le programme principal. Le mode scrutation a l'avantage d'éviter l'accès concurrent aux variables partagées avec la routine d'interruption.

Très bonne journée à tous.

Je réponds sans doute un peu tard à ce post que je viens de découvrir seulement aujourd'hui.
Effectivement, j'ai d'ailleurs fait une mise à jour de l'article https://www.locoduino.org/spip.php?article297 le 2 août 2022 où la bibliothèque PinChangeInt (qui n'est plus distribuée) a été ôtée du programme.
L'article initial (B.A.L avec la carte shield 4 relays) avait été écrit aussi dans le but de montrer l'utilisation d'interruptions.