Skip to content

Commit

Permalink
Merge pull request #108 from PiFou86/main
Browse files Browse the repository at this point in the history
Merge
  • Loading branch information
PiFou86 committed Oct 31, 2022
2 parents 1e7fa89 + fde3858 commit 90c6e9a
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -186,19 +186,19 @@ void delay(unsigned long ms)
```cpp
unsigned long dureeActionMS = 0;
uint32_t dateDernierDecrementdureeActionMs = 0;
uint32_t dateDernierDecrementdureeActionUs = 0;
int etapeCycle = 0;
int dureeAllumee = 1000; // ms
int dureeEteinte = 500; // ms
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
dateDernierDecrementdureeActionMs = micros();
dateDernierDecrementdureeActionUs = micros();
}
void loop() {
while (dureeActionMS > 0 && (micros() - dateDernierDecrementdureeActionMs) >= 1000) {
while (dureeActionMS > 0 && (micros() - dateDernierDecrementdureeActionUs) >= 1000) {
dureeActionMS--;
dateDernierDecrementdureeActionMs += 1000;
dateDernierDecrementdureeActionUs += 1000;
}
if (dureeActionMS == 0) {
Expand Down Expand Up @@ -233,18 +233,18 @@ Dans cette partie, nous allons créer la classe "DELClignotante" qui aura pour r
- prend en paramètre la durée où la DEL est allumée
- prend en paramètre la durée où la DEL est éteinte
- garde la configuration de rapport de cycle et les durées allumées / éteinte
- configure le port en sortie
- "loop" : qui contrôle s'il faut changer d'étape dans le cycle courant : allumée ou éteinte
- "tick" : qui contrôle s'il faut changer d'étape dans le cycle courant : allumée ou éteinte
- Testez votre classe en créant :
- Un pointeur global de DELClignotante (ie en dehors des fonctions setup et loop)
- Dans la fonction setup, créez une instance de DELClignotante que vous affecterez à votre variable globale
- Dans la fonction loop, appelez simplement la méthode loop de votre instance de DELClignotante
- Branchez maintenant votre arduino à votre platine d'expérimentation :
- pin 10 de l'arduino sur la DEL 0 de votre platine
- pin 11 de l'arduino sur la DEL 4 de votre platine
- Créez deux objets de type DELClignotante :
- À partir de votre classe Program, créez deux objets de type DELClignotante :
- Le premier a une dureeAllumee = 500 et une dureeEteinte = 500
- Le second a une dureeAllumee = 600 et une dureeEteinte = 600
- Ajoutez le code nécessaire pour faire fonctionner le clignotement (voir méthode loop de "DELClignotante")

![Diagramme de classes](../images/Module04_ProgrammationSorties/diag/DELClignotante/DELClignotante_diagclasses.png)

Expand Down
11 changes: 6 additions & 5 deletions Module04_ProgrammationSorties/diag/DELClignotante.wsd
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,15 @@ note left of main_cpp
main.cpp et les fonctions setup / loop.
- Déclarez un pointeur de Program
- Dans la fonction setup :
- Allouer un Program et l'affecter au pointeur
- Appelez la méthode setup du pointeur
- Allouer un Program et l'affecter au pointeur : le constructeur va initialiser ses données membres
- Dans la fontion loop :
- Appelez la méthode loop du pointeur
end note

class Program {
+ setup()
- m_DELClignotante1 : DELClignotante *
- m_DELClignotante2 : DELClignotante *
+ ctor()
+ loop()
}

Expand All @@ -37,12 +38,12 @@ class DELClignotante {
- m_dureeEteinte : int
...
+ DELClignotante(p_pin : int, p_rapportCycle : float, p_dureeAllumee : int, p_dureeEteinte : int)
+ loop()
+ tick()
}

main_cpp --> Program : create
Program --> DELClignotante : create

DEL <|-- DELClignotante

@enduml
@enduml
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 90c6e9a

Please sign in to comment.