Loup Langard / Mbed 2 deprecated base_mbed_SAE1_S2-V0

Dependencies:   mbed

Committer:
dujardin
Date:
Sun Oct 13 14:11:14 2019 +0000
Revision:
7:7b0c1a910ccc
Parent:
6:0e41621d745d
Child:
8:3f5e4022745e
modif 13 10 2019

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dujardin 2:6566f09256dc 1 #include "mbed.h" //
dujardin 0:5945217144be 2
dujardin 5:c404ef14ea33 3 //-------- programme de test carte MES432 ----------------
dujardin 3:032c516c2ffa 4 // chaque seconde, numérise 4 valeurs sur ch1 ch2
dujardin 7:7b0c1a910ccc 5 // ***************et envoie en duj2 de la trame de test exemple dit "toto"
dujardin 2:6566f09256dc 6 //
dujardin 2:6566f09256dc 7 // configuration liaison série à 19200 bps ( driver stlink)
dujardin 1:1779a3279496 8 // A0 et A1 sont placées en entrée analogique ( mesure sortie AOP)
dujardin 1:1779a3279496 9 // A3 et A4 sont placées en sortie analogique ( offset vers AOP)
dujardin 2:6566f09256dc 10 // sorties led sur carte nommée LL , IO sur D3 , pol sur D2
dujardin 3:032c516c2ffa 11 // broches D0 D1 sont précablées en I2C ( sans plus)
dujardin 4:fdb2d0fefd66 12 // connecteur (vue de face)*** I2C I2C IO Ov Ov 3.3V ch2 ch1 ***
dujardin 0:5945217144be 13 //------------------------------------
dujardin 0:5945217144be 14
dujardin 2:6566f09256dc 15 //****************** déclaration des broches ****************
dujardin 1:1779a3279496 16 Serial pc(SERIAL_TX, SERIAL_RX); // PORT SERIE SUR usb !!
dujardin 1:1779a3279496 17 AnalogIn Ch1(A0) ;AnalogIn Ch2(A1); // entrées ana nommées Ch1 Ch2
dujardin 1:1779a3279496 18 AnalogOut out1(A3);AnalogOut out2(A4); // sorties ana nommées out1 out2
dujardin 1:1779a3279496 19 I2C i2c(D0,D1); // (sda,scl) canal I2C nommé i2c
dujardin 2:6566f09256dc 20 DigitalOut pol(D2); // polarisation à 3.3V I2C ( si à 1)
dujardin 2:6566f09256dc 21 DigitalOut IO(D3); // sortie TTL nommée S0
dujardin 1:1779a3279496 22 DigitalOut LL(LED1); // led nommée LL ( sur module L432
dujardin 2:6566f09256dc 23 // nota IO peut etre déclarée en entrée en ecrivant DigitalIn IO(D3);
dujardin 2:6566f09256dc 24 //**********************************************************************
dujardin 4:fdb2d0fefd66 25 uint16_t chi[5]; // déclaratiion d'un tableau d'entiers 16bits sans signe
dujardin 4:fdb2d0fefd66 26 float chf[5]; // déclaration d'un tableau de float
dujardin 7:7b0c1a910ccc 27 int recpt = 0; // pour y stocker l'arrivé d'un octet de la liaison série XBEE
dujardin 7:7b0c1a910ccc 28
dujardin 7:7b0c1a910ccc 29 //******** sous programmes ( situés en bas de cette page )
dujardin 7:7b0c1a910ccc 30 void interrupt(); // lié à la liaison série
dujardin 0:5945217144be 31
dujardin 3:032c516c2ffa 32 void init(void) // initialisation
dujardin 3:032c516c2ffa 33 {
dujardin 4:fdb2d0fefd66 34 pc.baud(19200); // vitesse liaison série
dujardin 7:7b0c1a910ccc 35 pc.attach(&interrupt, Serial::RxIrq); // autorise IT de liaison serie
dujardin 4:fdb2d0fefd66 36 pol = 1; // polarisation résistancesde l' I2C
dujardin 3:032c516c2ffa 37 LL = 0 ; // led du L432 on
dujardin 4:fdb2d0fefd66 38 out1.write(0.5); // sortie ana A3 = 0.5 * 3.3V soit 1.6 V
dujardin 4:fdb2d0fefd66 39 out2.write(0.25); // sortie ana A4 = 0.25* 3.3V soit 0.8 V
dujardin 4:fdb2d0fefd66 40 IO = 0 ; // sortie I/O mise à 0
dujardin 3:032c516c2ffa 41 }
dujardin 3:032c516c2ffa 42
dujardin 3:032c516c2ffa 43 int main()
dujardin 3:032c516c2ffa 44 {
dujardin 3:032c516c2ffa 45 init();
dujardin 1:1779a3279496 46
dujardin 0:5945217144be 47 while(1) // boucle sans fin
dujardin 3:032c516c2ffa 48 {
dujardin 7:7b0c1a910ccc 49 LL = !LL ; //inverse led carte mbed
dujardin 4:fdb2d0fefd66 50 wait(0.5); // delai 0.5s
dujardin 4:fdb2d0fefd66 51
dujardin 4:fdb2d0fefd66 52 chi[1] = Ch1.read_u16(); // lecture ch1 mise en memoire 16bits
dujardin 4:fdb2d0fefd66 53 chf[1] = Ch2.read(); // lecture ch2 mise en float en mémoire
dujardin 4:fdb2d0fefd66 54
dujardin 6:0e41621d745d 55 // transfert d'une trame de 4 entiers au protocole duj2 ( toto)
dujardin 4:fdb2d0fefd66 56 pc.putc('i'); // pointeur 1 = 0
dujardin 4:fdb2d0fefd66 57 pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('0');//Pt++
dujardin 4:fdb2d0fefd66 58 pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('1');
dujardin 4:fdb2d0fefd66 59 pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('2');
dujardin 4:fdb2d0fefd66 60 pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('3');
dujardin 4:fdb2d0fefd66 61 pc.putc('q'); // mise en mémoire
dujardin 6:0e41621d745d 62 // on verra le résultat sur Tera Term en 19200 bauds
dujardin 6:0e41621d745d 63 // comme ceci " ie0100e0101e0102e0103q "
dujardin 4:fdb2d0fefd66 64 // cette partie sera celle qui vous servira a valider votre processing
dujardin 4:fdb2d0fefd66 65
dujardin 6:0e41621d745d 66 //zone pour tester la carte sur teraterm
dujardin 6:0e41621d745d 67 // evoyer sur le terminal un int en hexa avec 4 carractèrs ascii
dujardin 6:0e41621d745d 68 // printf(" chi =0x%04x " , chi[1] );
dujardin 6:0e41621d745d 69 // evoyer sur le terminal un float avec 6 carractères ascii
dujardin 6:0e41621d745d 70 // printf(" chf =%.6f \n", 3.3*( chf[1]));
dujardin 6:0e41621d745d 71 // on lira sur Tera Term ( hors modifs sur le programme)
dujardin 6:0e41621d745d 72 // ceci " chi =0x80b8 chf =0.710769 "
dujardin 4:fdb2d0fefd66 73
dujardin 3:032c516c2ffa 74 }
dujardin 3:032c516c2ffa 75 }
dujardin 7:7b0c1a910ccc 76
dujardin 7:7b0c1a910ccc 77 void interrupt() // "recepteur" à chaque carractère reçut ce programme est activé
dujardin 7:7b0c1a910ccc 78 { // à vous de jouer !! sans mettre de delais dans ce petit programme
dujardin 7:7b0c1a910ccc 79 recpt = pc.getc();
dujardin 7:7b0c1a910ccc 80 if ( recpt == 'i') IO = !IO; // si 'i' inverse led carte MERE
dujardin 7:7b0c1a910ccc 81 return;
dujardin 7:7b0c1a910ccc 82 }