dujardin stephane / Mbed 2 deprecated base_mbed_SAE1_S2

Dependencies:   mbed

main.cpp

Committer:
dujardin
Date:
2021-10-09
Revision:
12:09b5ebdca214
Parent:
11:fa0f1787ea13
Child:
13:b19e2f833926

File content as of revision 12:09b5ebdca214:

#include "mbed.h"  //
// programme formation   carte MicroC SAE S2 1.2
//****************** déclaration des broches ****************
Serial pc(SERIAL_TX, SERIAL_RX);            //  PORT SERIE SUR usb  !! 
AnalogIn  Ch1(A0) ;    // pour mesure de Vs de   SAE S2 1.1  0.1V/°C
AnalogOut Vk(A4)  ;    // sortie compensation temperature vers SAE S2 1.1 
AnalogIn  P1(A1)  ;AnalogIn  P0(A3) ; // clef de carte 11 pour temperature
AnalogIn  simulVs(A2) ;    // potentiometre de simulation de Vs 
DigitalOut plus(D1);   // alim pull up interupteur     
DigitalIn inter(D2);   // entrée mesure inter        0 ou 1         
DigitalOut  LED(D9);   // sortie LED carte MicroC
          
//****variables ***********************************************************
uint16_t chi[10];  // declare un tableau d'int >0
int recpt = 0;     // varriable pour arrivée d'un octet de la liaison série  

float inVs = 0.5 ;    // variable pour Vs   float de 0 à 1 pour 0 à 3.3V
float simVs = 0.5;    // variable pour V potentiomètre 
float outVk = 0.3681; // varible qui fait Vk = 1.244  ( compense ambiant)
int   out = 0    ;    // variable de sortie à serialiser 
int   CAL = 0    ;    // si demande de calibration = 1 

//******** sous programmes ( situés en bas  de cette page )
void interrupt();  // lié à la liaison série 

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 résistances inter
    LED = 0 ;            // led du MicroC off
    Vk.write(outVk);     // sortie de vK 
    }
    
int main()
    {
    init(); 
    while(1)
        {
        if ( CAL == 1)
           { CAL = 0 ;}    //Votre futur travail pour calibrer****************
            
        if( inter == 1)    // test K1 sur carte MicroC
            {// si  inter ouvert mode normal 
             LED = 1 ;    
             //  votre travail pour mesurer la temperature sur Vs ************
            }      
        if ( inter == 0) 
            { // si inter en CC : mode testavec mesure  sur pot 
            LED = 0  ;                // eteindre LED  carte MicroC 
            wait(0.5);                // delai 0.5s
            simVs =  simulVs.read();  // lire le potentiomètre 
            out = 300*simVs        ;  // mettre dans une echelle 0 à 300 simVs
            pc.putc('D');             // ouvrir transfert
            pc.printf("%d", out);     // duj10 de la temperature 
            pc.putc('T');             // fermer et mettre dans température 
            }
        }
    }
    
void interrupt()//"recepteur"  à chaque carractère reçut ce programme est activé
    {  // à vous de jouer !! 
    recpt =  pc.getc();  
    if ( recpt == 'l') LED = 1 ; //allumer  LED 
    if ( recpt == 'a') CAL = 1 ; //demande de  calibration ( la votre ) 
    //   à faire detecter p et m    pour faire Vk + ou - *********************
    return;
    }