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.
main.cpp@12:09b5ebdca214, 2021-10-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |