dujardin stephane / Mbed 2 deprecated base_mbed_SAE1_S2

Dependencies:   mbed

Committer:
dujardin
Date:
Sat Oct 09 12:22:14 2021 +0000
Revision:
12:09b5ebdca214
Parent:
11:fa0f1787ea13
Child:
13:b19e2f833926
programme de base pour apprendre

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dujardin 2:6566f09256dc 1 #include "mbed.h" //
dujardin 12:09b5ebdca214 2 // programme formation carte MicroC SAE S2 1.2
dujardin 2:6566f09256dc 3 //****************** déclaration des broches ****************
dujardin 1:1779a3279496 4 Serial pc(SERIAL_TX, SERIAL_RX); // PORT SERIE SUR usb !!
dujardin 12:09b5ebdca214 5 AnalogIn Ch1(A0) ; // pour mesure de Vs de SAE S2 1.1 0.1V/°C
dujardin 12:09b5ebdca214 6 AnalogOut Vk(A4) ; // sortie compensation temperature vers SAE S2 1.1
dujardin 12:09b5ebdca214 7 AnalogIn P1(A1) ;AnalogIn P0(A3) ; // clef de carte 11 pour temperature
dujardin 12:09b5ebdca214 8 AnalogIn simulVs(A2) ; // potentiometre de simulation de Vs
dujardin 12:09b5ebdca214 9 DigitalOut plus(D1); // alim pull up interupteur
dujardin 12:09b5ebdca214 10 DigitalIn inter(D2); // entrée mesure inter 0 ou 1
dujardin 12:09b5ebdca214 11 DigitalOut LED(D9); // sortie LED carte MicroC
dujardin 12:09b5ebdca214 12
dujardin 12:09b5ebdca214 13 //****variables ***********************************************************
dujardin 12:09b5ebdca214 14 uint16_t chi[10]; // declare un tableau d'int >0
dujardin 12:09b5ebdca214 15 int recpt = 0; // varriable pour arrivée d'un octet de la liaison série
dujardin 10:32b5218ff304 16
dujardin 12:09b5ebdca214 17 float inVs = 0.5 ; // variable pour Vs float de 0 à 1 pour 0 à 3.3V
dujardin 12:09b5ebdca214 18 float simVs = 0.5; // variable pour V potentiomètre
dujardin 12:09b5ebdca214 19 float outVk = 0.3681; // varible qui fait Vk = 1.244 ( compense ambiant)
dujardin 12:09b5ebdca214 20 int out = 0 ; // variable de sortie à serialiser
dujardin 12:09b5ebdca214 21 int CAL = 0 ; // si demande de calibration = 1
dujardin 7:7b0c1a910ccc 22
dujardin 7:7b0c1a910ccc 23 //******** sous programmes ( situés en bas de cette page )
dujardin 7:7b0c1a910ccc 24 void interrupt(); // lié à la liaison série
dujardin 0:5945217144be 25
dujardin 12:09b5ebdca214 26 void init(void) // initialisations hard
dujardin 3:032c516c2ffa 27 {
dujardin 12:09b5ebdca214 28 pc.baud(115200); // vitesse liaison série
dujardin 7:7b0c1a910ccc 29 pc.attach(&interrupt, Serial::RxIrq); // autorise IT de liaison serie
dujardin 12:09b5ebdca214 30 plus = 1; // polarisation résistances inter
dujardin 12:09b5ebdca214 31 LED = 0 ; // led du MicroC off
dujardin 12:09b5ebdca214 32 Vk.write(outVk); // sortie de vK
dujardin 3:032c516c2ffa 33 }
dujardin 3:032c516c2ffa 34
dujardin 3:032c516c2ffa 35 int main()
dujardin 3:032c516c2ffa 36 {
dujardin 3:032c516c2ffa 37 init();
dujardin 12:09b5ebdca214 38 while(1)
dujardin 3:032c516c2ffa 39 {
dujardin 12:09b5ebdca214 40 if ( CAL == 1)
dujardin 12:09b5ebdca214 41 { CAL = 0 ;} //Votre futur travail pour calibrer****************
dujardin 12:09b5ebdca214 42
dujardin 12:09b5ebdca214 43 if( inter == 1) // test K1 sur carte MicroC
dujardin 12:09b5ebdca214 44 {// si inter ouvert mode normal
dujardin 12:09b5ebdca214 45 LED = 1 ;
dujardin 12:09b5ebdca214 46 // votre travail pour mesurer la temperature sur Vs ************
dujardin 12:09b5ebdca214 47 }
dujardin 12:09b5ebdca214 48 if ( inter == 0)
dujardin 12:09b5ebdca214 49 { // si inter en CC : mode testavec mesure sur pot
dujardin 12:09b5ebdca214 50 LED = 0 ; // eteindre LED carte MicroC
dujardin 12:09b5ebdca214 51 wait(0.5); // delai 0.5s
dujardin 12:09b5ebdca214 52 simVs = simulVs.read(); // lire le potentiomètre
dujardin 12:09b5ebdca214 53 out = 300*simVs ; // mettre dans une echelle 0 à 300 simVs
dujardin 12:09b5ebdca214 54 pc.putc('D'); // ouvrir transfert
dujardin 12:09b5ebdca214 55 pc.printf("%d", out); // duj10 de la temperature
dujardin 12:09b5ebdca214 56 pc.putc('T'); // fermer et mettre dans température
dujardin 12:09b5ebdca214 57 }
dujardin 12:09b5ebdca214 58 }
dujardin 3:032c516c2ffa 59 }
dujardin 7:7b0c1a910ccc 60
dujardin 10:32b5218ff304 61 void interrupt()//"recepteur" à chaque carractère reçut ce programme est activé
dujardin 10:32b5218ff304 62 { // à vous de jouer !!
dujardin 7:7b0c1a910ccc 63 recpt = pc.getc();
dujardin 12:09b5ebdca214 64 if ( recpt == 'l') LED = 1 ; //allumer LED
dujardin 12:09b5ebdca214 65 if ( recpt == 'a') CAL = 1 ; //demande de calibration ( la votre )
dujardin 12:09b5ebdca214 66 // à faire detecter p et m pour faire Vk + ou - *********************
dujardin 7:7b0c1a910ccc 67 return;
dujardin 7:7b0c1a910ccc 68 }