En cours Faire clignoter une led en dehors du programme principal

  • Auteur de la discussion gaston83
  • Date de début
gaston83
gaston83
Compagnon
17 Fev 2016
1 446
FR-71520
  • Auteur de la discussion
  • #1
Bonjour à tous,

Tout est dans le titre... je suppose qu'il va falloir que je tripote les interruptions ... :wink:
 
gaston83
gaston83
Compagnon
17 Fev 2016
1 446
FR-71520
  • Auteur de la discussion
  • #4
edit:

Ha, je viens de m'apercevoir que c'est pas pour les 32U4. Je viens de tester...

J'ai rien dit... ça marche... la pin 13 était déjà prise.

Merci...

++
 
Dernière édition:
gaston83
gaston83
Compagnon
17 Fev 2016
1 446
FR-71520
  • Auteur de la discussion
  • #5
Par contre, aurais-tu une idée pour pour faire un allumage de 100 ms toutes les secondes ... :smt017
 
gégé62
gégé62
Compagnon
26 Fev 2013
2 865
Harnes (Pas de Calais)
tu n'as pas le droit d'utiliser delay(100) dans ta routine d'interruption ? (je sais que les delay sont à éviter, mais 100 ms c'est pas encore trop long....
 
petit_lulu
petit_lulu
Compagnon
11 Jan 2015
815
gers
je precise que je ne connais pas arduino mais:
-tu cree une interuption toute les 100ms avec ton timer ou 10ms si c'est trop long
-dans la routine d'interuption tu incremente un compteur et quand il est a 10 (ou 100 si 10ms) tu le passe a 0 (ne pas oublier de le mettre a 0 a l'initialisation du µC)
-de plus dans cette meme routine tu test si le compteur est a 0 (ou inferieur a 11 si 10ms):
--si a 0 (< a 11) alors tu allume la led
--si <>0 (> a 11) tu eteint

c'est simple et ca monopolise pas le µC pendant 100ms.
 
remi30132
remi30132
Compagnon
8 Août 2016
589
nimes
Si le problème est l'utilisation des delay() tu peux utiliser des millis dans des if
 
F
francis75
Ouvrier
19 Sept 2013
424
Paris 10e
Par contre, aurais-tu une idée pour pour faire un allumage de 100 ms toutes les secondes ... :smt017
Bonjour,
C'est typiquement une fonctionnalité PWM (Modulation de largeur d'impulsion). Je n'ai pas sous les yeux les specs de l'Arduino, mais les timers permettent en général de faire ça (souvent pénible à configurer). Sinon, avec 2 timers.


PS
---
En principe on ne met pas de temporisation, délais, ou gros code dans une fonction d'interruption, afin d'en sortir au plus vite.
 
Dernière édition:
gégé62
gégé62
Compagnon
26 Fev 2013
2 865
Harnes (Pas de Calais)
En principe on ne met pas de temporisation, délais, ou gros code dans une fonction d'interruption, afin d'en sortir au plus vite.
c'est vrai, ça peut poser ds problèmes, mais je pense que ça dépend du contexte, ici on ne le connait pas.
 
CNCSERV
CNCSERV
Compagnon
27 Déc 2007
5 671
FR-28360
tu n'as pas le droit d'utiliser delay(100) dans ta routine d'interruption
Non, on interrompt pas une routine d'interruption :wink:
Le compteur à lulu est a mon avis la bonne solution et le plus simple.
 
jpbbricole
jpbbricole
Compagnon
26 Mai 2016
2 215
Corsier-sur-Vevey (Vaud)
gaston83
gaston83
Compagnon
17 Fev 2016
1 446
FR-71520
  • Auteur de la discussion
  • #15
Hé bien, encore une fois ....:smt023 un grand merci Messieurs... ça fonctionne nickel.... :prayer:

C'est bien beau, mais maintenant il faut j'assimile la procédure .... je ne veux pas faire du recopiage tout bête ... il n' y aurait aucun intérêt. :wink:

++
 
Haut