Yigit Enes / Mbed 2 deprecated SAE2_Ep13_copy

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
enesyi
Date:
Thu May 19 13:06:08 2022 +0000
Commit message:
hello my name is djibril;

Changed in this revision

.mbed Show annotated file Show diff for this revision Revisions of this file
etape0.h Show annotated file Show diff for this revision Revisions of this file
etape1.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
mbed_config.h Show annotated file Show diff for this revision Revisions of this file
sousprog.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.mbed	Thu May 19 13:06:08 2022 +0000
@@ -0,0 +1,2 @@
+ROOT=.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etape0.h	Thu May 19 13:06:08 2022 +0000
@@ -0,0 +1,32 @@
+// actions menées 
+// 1/ faire  clignoter la led 10 fois 
+// 2/ placer la sortie  Vr à  1.227V ( 20°C ?)
+// 3/ informer le PC qu'on est en mode sans carte capteur   'h' 
+// 4/ petit delai et eteindre la led
+// 5/ on force etape = 1 
+
+
+void etape0()
+   {
+   for ( int i = 0 ; i < 5 ; i++)
+        {
+        LED = 0     ; // la sortie LED est mise à 0L
+        wait(0.5)   ; // attente de 0.2S 
+        LED = 1     ;
+        wait(0.5)   ;
+        }
+    
+    pc.putc('h')    ; // on dit au PC  "pas de carte capteur"
+    pc.putc('d')    ;
+    if((INP0==1) && (INP1==1))calibrationT();
+    if((INP0==0) && (INP1==1))calibrationF();
+    if((INP0==1) && (INP1==0))calibrationL();
+    
+    wait(0.2)       ; // delai 
+    LED = 0         ; // eteindre la led 
+    
+    
+    
+  
+     //etape = 1       ; // changement d'étape à 1
+   }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etape1.h	Thu May 19 13:06:08 2022 +0000
@@ -0,0 +1,73 @@
+// actions faites dans etape1
+// 1/  tester l'état de l'inter et  en informer le PC 
+// 2/  lire la tension sur P0 , et determiner son etat logique 
+//     informer le PC sur l'état logique de l'interrupteur K
+// 3/  lire la valeur de la tension sur le potentiometre inVp dans un float
+//      traduire le float dans  un INT (out) allant de 0 à 333
+// 4/ envoyer la valeur de out (Vp) en Duj10 
+//     debuter le dialogue par un 'D'
+//     envoyer avec un print en decimal la valeur de Vp
+//     fermer le dialogue avec un 'P' pour utilisation "potentiometre"
+// 5/ wait 0.1ms   
+
+
+void etape1T()  
+        {  
+        pc.putc('e');  
+                // mesure de la tension sur le potentiometre et transfert en duj10
+        Vp =  inVp.read()   ;  // lire le potentiomètre 
+        out = 333*Vp        ;  // mettre dans un int dans une echelle 0 à 333
+        pc.putc('D')        ;  // ouvrir le transfert par D
+        pc.printf("%d", out);  // duj10 du pot ( de 0 à 333)
+        pc.putc('P')        ;  // fermer par P pour potentiometre 
+        
+        out = 1000*Vr        ;  // mettre dans un int dans une echelle 0 à 333
+        pc.putc('D')        ;  // ouvrir le transfert par D
+        pc.printf("%d", out);  // duj10 du pot ( de 0 à 333)
+        pc.putc('C')        ;  // fermer par P pour potentiometre 
+        
+        Vs =  inVs.read()   ;  // lire le potentiomètre 
+        out = 333*Vs        ;  // mettre dans un int dans une echelle 0 à 333
+        pc.putc('D')        ;  // ouvrir le transfert par D
+        pc.printf("%d", out);  // duj10 du pot ( de 0 à 333)
+        pc.putc('T')        ;  // fermer par P pour potentiometre 
+        
+      
+        wait(0.2);
+        }
+ void etape1F()  
+        {  
+        pc.putc('f');  
+                // mesure de la tension sur le potentiometre et transfert en duj10
+        Vp =  inVp.read()   ;  // lire le potentiomètre 
+        out = 333*Vp        ;  // mettre dans un int dans une echelle 0 à 333
+        pc.putc('D')        ;  // ouvrir le transfert par D
+        pc.printf("%d", out);  // duj10 du pot ( de 0 à 333)
+        pc.putc('P')        ;  // fermer par P pour potentiometre 
+        
+        out = 1000*Vr        ;  // mettre dans un int dans une echelle 0 à 333
+        pc.putc('D')        ;  // ouvrir le transfert par D
+        pc.printf("%d", out);  // duj10 du pot ( de 0 à 333)
+        pc.putc('C')        ;  // fermer par P pour potentiometre 
+        
+        Vs =  inVs.read()   ;  // lire le potentiomètre 
+        out = 333*Vs        ;  // mettre dans un int dans une echelle 0 à 333
+        pc.putc('D')        ;  // ouvrir le transfert par D
+        pc.printf("%d", out);  // duj10 du pot ( de 0 à 333)
+        pc.putc('F')        ;  // fermer par P pour potentiometre 
+        
+      
+        wait(0.2);
+        }
+ void etape1L()  
+        {  
+        pc.putc('g');  
+        Vs =  inVs.read()   ;  // lire le potentiomètre 
+        out = 333*Vs        ;  // mettre dans un int dans une echelle 0 à 333
+        pc.putc('D')        ;  // ouvrir le transfert par D
+        pc.printf("%d", out);  // duj10 du pot ( de 0 à 333)
+        pc.putc('L')        ;  // fermer par P pour potentiometre 
+        
+      
+        wait(0.2);
+        }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu May 19 13:06:08 2022 +0000
@@ -0,0 +1,73 @@
+// SAE1-S2  programme de départ testant uniquement la carte micro 
+
+#include "mbed.h"  //
+//****************** déclarations de toutes les  broches !!***************
+Serial pc(SERIAL_TX, SERIAL_RX);     //  PORT SERIE vers driver usb  !! 
+AnalogIn   inVs(A0) ; // entrée ana pour mesurer le Vs de la  carte capteur
+AnalogOut  outVr(A4); // sortie ana pour la calibration du  capteur
+AnalogIn   P1(A1)   ; AnalogIn  P0(A3) ; // entrée  ana pour le code du capteur
+AnalogIn   inVp(A2) ; // entrée ana pour le potentiometre de la carte 
+DigitalOut plus(D1) ; // sortie logique alim du pull up interupteur  2 pins   
+DigitalIn  inter(D2); // entrée logique mesure inter ( 1L à vide)     
+DigitalOut LED(D9)  ; // sortie logique pour la LED de la carte ( 1 allume)
+          
+//****variables ***********************************************************
+int   recpt = 0     ; // tampon d'arrivée d'un octet de la liaison série  
+float Vs    = 0.5   ; // variable ou lire  Vs de  0 à 1 pour 0 à 3.3V vrai
+float Vp    = 0.5   ; // variable pour lire Vp (potentiomètre)0 à 1 pour 0 à 3.3V
+float Vr = 0.3681   ; // variable de sortie Vr 0,3681 > Vk = 1.244 (20°C +-10mv)
+float P     = 0.1   ; // tampon de lecture des broches P0 et P1 
+int   out   = 0     ; // variable de sortie à serialiser en duj10
+int   etape = 0     ; // permet au programme de savoir ou il en est 
+int INP0= 0;
+int INP1= 0; 
+
+//******** préparation des  sous programmes 
+#include "sousprog.h" 
+#include "etape0.h" 
+#include "etape1.h" 
+
+void interrupt();  // obligatoire ici : pour la reception de liaison serie 
+    
+int main()  // boucle principale 
+    {
+        // tester broche de  l'inter     ( entrée logique D2 nommée inter ou K)  
+        /*if( inter == 1)    // test inter sur carte MicroC
+            {  pc.putc('w');   }   
+        if( inter == 0)    // test inter sur carte MicroC
+            {  pc.putc('v');   }   */
+            
+        // mesurer  la tension analogique sur P0 
+
+        
+      
+    init(); // prépare certianes fonctions au debut 
+        
+    while(1)// boucle sans fin du programme 
+        {
+                 P = P0.read();     // regarde la tension sur P0  pour savoir si 0 ou 1L
+        if ( P > 0.51 ) 
+            {pc.putc('s'); INP0 = 1;}
+        if ( P < 0.49 ) 
+            {pc.putc('r'); INP0 = 0;}
+        P = P1.read();
+        if ( P > 0.51 ) 
+            {pc.putc('u'); INP1 = 1;}
+        if ( P < 0.49 ) 
+            {pc.putc('t'); INP1 = 0;}
+         etape = inter ;
+         if ( etape == 0 ) {  pc.putc('v');   }   
+         if ( etape == 1 ) {  pc.putc('w');   } 
+         
+         if ( etape == 0 ) etape0() ; // au debut etape = 0
+         if ( etape == 1 ){
+         if ((INP0==1) && (INP1==1)) etape1T();  
+         if ((INP0==0) && (INP1==1)) etape1F();  
+         if ((INP0==1) && (INP1==0)) etape1L();
+         if ((INP0==0) && (INP1==0)) pc.putc('h');
+         }
+        }
+    }
+    
+ 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu May 19 13:06:08 2022 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed_config.h	Thu May 19 13:06:08 2022 +0000
@@ -0,0 +1,60 @@
+/*
+ * mbed SDK
+ * Copyright (c) 2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Automatically generated configuration file.
+// DO NOT EDIT, content will be overwritten.
+
+#ifndef __MBED_CONFIG_DATA__
+#define __MBED_CONFIG_DATA__
+
+// Configuration parameters
+#define CLOCK_SOURCE                                       USE_PLL_MSI                                                                    // set by target:NUCLEO_L432KC
+#define LPTICKER_DELAY_TICKS                               0                                                                              // set by target:NUCLEO_L432KC
+#define MBED_CONF_PLATFORM_CRASH_CAPTURE_ENABLED           0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_CTHUNK_COUNT_MAX                8                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE        9600                                                                           // set by library:platform
+#define MBED_CONF_PLATFORM_ERROR_ALL_THREADS_INFO          0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_ERROR_DECODE_HTTP_URL_STR       "\nFor more info, visit: https://armmbed.github.io/mbedos-error/?error=0x%08X" // set by library:platform
+#define MBED_CONF_PLATFORM_ERROR_FILENAME_CAPTURE_ENABLED  0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_ERROR_HIST_ENABLED              0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_ERROR_HIST_SIZE                 4                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_ERROR_REBOOT_MAX                1                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_FATAL_ERROR_AUTO_REBOOT_ENABLED 0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_FORCE_NON_COPYABLE_ERROR        0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN          16                                                                             // set by library:platform
+#define MBED_CONF_PLATFORM_POLL_USE_LOWPOWER_TIMER         0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_STDIO_BAUD_RATE                 9600                                                                           // set by library:platform
+#define MBED_CONF_PLATFORM_STDIO_BUFFERED_SERIAL           0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_STDIO_CONVERT_NEWLINES          0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_STDIO_CONVERT_TTY_NEWLINES      0                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_STDIO_FLUSH_AT_EXIT             1                                                                              // set by library:platform
+#define MBED_CONF_PLATFORM_USE_MPU                         1                                                                              // set by library:platform
+#define MBED_CONF_TARGET_BOOT_STACK_SIZE                   0x400                                                                          // set by target:MCU_STM32_BAREMETAL
+#define MBED_CONF_TARGET_CONSOLE_UART                      1                                                                              // set by target:Target
+#define MBED_CONF_TARGET_DEEP_SLEEP_LATENCY                4                                                                              // set by target:MCU_STM32
+#define MBED_CONF_TARGET_DEFAULT_ADC_VREF                  NAN                                                                            // set by target:Target
+#define MBED_CONF_TARGET_INIT_US_TICKER_AT_BOOT            1                                                                              // set by target:MCU_STM32
+#define MBED_CONF_TARGET_LPTICKER_LPTIM                    1                                                                              // set by target:NUCLEO_L432KC
+#define MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK              1                                                                              // set by target:MCU_STM32
+#define MBED_CONF_TARGET_LPUART_CLOCK_SOURCE               USE_LPUART_CLK_LSE|USE_LPUART_CLK_PCLK1                                        // set by target:MCU_STM32
+#define MBED_CONF_TARGET_LSE_AVAILABLE                     1                                                                              // set by target:MCU_STM32
+#define MBED_CONF_TARGET_MPU_ROM_END                       0x0fffffff                                                                     // set by target:Target
+#define MBED_CONF_TARGET_TICKLESS_FROM_US_TICKER           0                                                                              // set by target:Target
+#define MBED_CONF_TARGET_XIP_ENABLE                        0                                                                              // set by target:Target
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sousprog.h	Thu May 19 13:06:08 2022 +0000
@@ -0,0 +1,59 @@
+
+//  sous programmes de gestion technique de la carte micro
+
+void interrupt()// à chaque carractère reçut,  ce programme est activé
+    {  // 
+    recpt =  pc.getc();  
+    if ( recpt == 'l') LED = 1 ; //allumer   LED 
+    if ( recpt == 'k') LED = 0 ; //eteindre  LED 
+    
+    // augmenter ou baisser Vr ( compensation en température)  
+    if ( recpt == 'r') {Vr = Vr - 0.02  ; if ( Vr < 0.05) Vr = 0.06;outVr.write(Vr) ; } //--
+    if ( recpt == 'm') {Vr = Vr - 0.001 ; if ( Vr < 0.05) Vr = 0.06;outVr.write(Vr) ; } // -
+    if ( recpt == 's')  Vr = 0.3681 ;                               //vK remis à 20°C (environ )
+    if ( recpt == 'p') {Vr = Vr + 0.001 ; if ( Vr > 0.95) Vr = 0.94;outVr.write(Vr) ; } // +
+    if ( recpt == 'q') {Vr = Vr + 0.02  ; if ( Vr > 0.95) Vr = 0.94;outVr.write(Vr) ; } // ++
+    return;  // fin du sous programme 
+    }
+    
+void init(void)    // initialisations hard  
+    {
+    pc.baud(115200);     // vitesse liaison série
+    pc.attach(&interrupt, Serial::RxIrq);  // autorise IT de liaison serie 
+    plus = 1;            // polarisation de la résistance de l'inter carte
+    LED = 0 ;            // led carte  off
+    outVr.write(Vr);     // sortie de  outVr sur la broche  vK 
+    //etape=0;  
+    pc.putc('h')   ;     // dit au PC  pas de carte capteur
+    pc.putc('d')   ;
+    }
+    
+    void calibrationT()
+    {
+        Vr = 0;
+        outVr.write(Vr);
+        Vs = 0;
+        while(Vs <= 0.57)
+        {      
+        Vr = Vr + 0.001;
+        outVr.write(Vr);
+        wait(0.01);
+        Vs = inVs.read();
+        }
+        pc.putc('c');
+    }
+    
+    void calibrationF()
+    {
+        Vr = 0.66;
+        outVr.write(Vr);
+   
+        wait(0.01);
+        Vs = inVs.read();
+        pc.putc('c');
+    }
+    
+    void calibrationL()
+    {
+        pc.putc('c');
+    }