Franck DURAND / Mbed 2 deprecated liste_syntaxe

Dependencies:   mbed

Revision:
3:b25b975a8e2d
Parent:
2:0e685aff01f3
--- a/main.cpp	Thu Sep 17 13:34:27 2020 +0000
+++ b/main.cpp	Wed Jan 06 13:57:14 2021 +0000
@@ -1,17 +1,142 @@
 #include "mbed.h"
+#define Frequence 500 // définition d'une constante frequence=500
 
-Ticker toggle_led_ticker;
+Serial pc(USBTX,USBRX);   // déclaration d'un objet PC port série sur USB
+Serial uart(PG_14, PG_9); // déclaration d'un objet UART sur broche 
+                          // GPIO PG_14 pour TX et PG_9 pour RX
+InterruptIn alarme(D2);
+Timer chrono;
+Ticker clignotement;      // Ticker pour faire clignoter une LED toutes les 0,5s
+PwmOut monpwm(PE_13);     // PWM sur la broche D3 arduino
+AnalogIn potentiometre(PC_3);  // entrée associée à A2 Arduino
 
-DigitalOut led1(LED1);
+//  Variables globales
+DigitalOut myled1 (LED1);
+DigitalOut myled2 (LED2);
+DigitalOut myled3 (LED3);
+
+float ma_variable;
+float ma_variable2=100;
 
-void toggle_led() {
-    led1 = !led1;
+// Programme de clignotement pour le Ticker
+void clignote()
+    {
+        myled1=!myled1;
+    }
+
+void alarme_declanchee() {
+    for (int i=0; i<20; i++) 
+    {
+        myled2=!myled2;
+        wait_ms(300);
+    }
 }
 
-int main() {
-    // Init the ticker with the address of the function (toggle_led) to be attached and the interval (100 ms)
-    toggle_led_ticker.attach(&toggle_led, 0.1);
-    while (true) {
-        // Do other things...
+int main()          // début du programme principal 
+{
+    alarme.rise(&alarme_declanchee);  // déclanchement du programme alarme_declanchee lors d'un 
+   // front montant sur la broche GPIO D2 (interuption déclarée du nom de alarme
+    
+    DigitalOut hp_out(PE_13);    // Sortie digitale hp-out sur la broche PE_13
+    DigitalIn mybutton (USER_BUTTON);  // Entrée digitale mybutton sur le bouton 
+                                        // utilisateur USER_BUTTON
+
+    
+    // Variables locales car dans le main()
+    char c;
+    float tension;  // Tension sur la broche A2 portentiométre PE_3
+    int count;
+    int i;     // définir la variable i en integer
+    int j=0;     // définir la variable j en integer avec initialisation j=0
+    float tableau[10];
+    
+    monpwm.period_ms(2);       // période du signal PWM 2ms
+    monpwm.pulsewidth_ms(1);   // largeur d'impulsion 1ms donc rapport cyclique 50%
+    // monpwm.write(0.5);      identique à la ligne du dessus, rapport cyclique 0.5
+    
+    pc.printf ("\n Début du programme \n");
+    tension = 3.3*potentiometre.read();   // Valeur entre 0 et 1 multipliée par 3,3V
+    pc.printf ("\n La tension est de %.4f volt \n",tension);    
+    
+    uart.baud(9600);   // régler la vitesse de transmission du port série à 9600 bauds
+    
+    uart.format(8,SerialBase::None,1);     // 8 bits, Parity None, Stop bit =1
+    uart.putc(41);   // envoyer le caractére ASCII numéro 41 lettre "A" sur le port série uart                                   
+    
+    for (i=0; i<=10; i++) {
+        tableau[i] = sqrt((double)i);
+        }
+    chrono.reset();
+     while (1) {
+         if (mybutton ==1) {
+             clignotement.attach(&clignote,500); // periode de clignotement de 0,5 secondes
+                                                    // clignotement c'est le ticker défini en haut
+                                                    // clignote c'est le programme void clignote
+             chrono.start();
+             hp_out = !hp_out;
+             wait_ms(500);  // delai de 500 ms
+             wait(0.5);     // delai de 500 ms
+             }
+             else {
+                 hp_out=0;
+                 }
+    
+     if (mybutton ==1) hp_out = !hp_out;   // valable pour une seule instruction
+     if (mybutton ==1) { hp_out = !hp_out; }  // idem ligne du haut
+     
+     if (pc.readable()==1) {     // si une donnée est disponible sur le port série PC alors
+         c=pc.getc();            // Lire le caractère sur le port série PC et le placer dans C
+         pc.putc(c);              // envoyer le caracère dans c vers le port série PC
+         if (c=='a') { 
+            pc.printf("\n vous avez appuye sur a  \n");
+         }
+     ma_variable = ma_variable+100;
+     ma_variable +=100; // idem au dessus
+     
+     ma_variable++;  // augmente de 1
+     ma_variable2++; // passe de 100 à 101 
+    
+    if (c=='a'&&ma_variable<400) { ma_variable=0;}  // opérateur ET
+    if (c=='a'|| ma_variable>2000) {ma_variable=0;}  // opérateur OU
+     
+     while (ma_variable <=1000) {   // les instructons ligne 1,2,3 sont executées 
+                                  //  si ma_variable <=1000
+         // programme ligne 1 
+         // programme ligne 2
+         // programme ligne 3
     }
+     
+     for (count=0; count <3; count++) {    //Boucle de 0 à 2 inclus avec 
+                                            // count +1 à chaque passage
+         // instruction 1
+         // instruction 2
+         // instruction 3
+     }   // fin de la boucle for 
+     pc.printf("\n Temps écoulé %d us\n",chrono.read_us());
+     chrono.stop();
+     
+     for (count=1; count <4; count++) { 
+        switch (count) {
+            case (1):
+            myled1 =1;
+            break;
+            
+            case 2:
+            myled2 =1;
+            break;
+            
+            case 3:
+            myled3 =1;
+            myled2 =0;
+            myled1.write(0);
+            break;
+        }    
+     }
+
+     while (1);  // boucle infinie tant que 1 ou Vrai 
+     while (1) {}; // boucle infinie
+     while (true); // boucle infinie
 }
+}
+}
+             
\ No newline at end of file