Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 0:dbd6ea244e7e, committed 2022-05-19
- Comitter:
- enesyi
- Date:
- Thu May 19 13:06:08 2022 +0000
- Commit message:
- hello my name is djibril;
Changed in this revision
--- /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');
+ }