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@7:7b0c1a910ccc, 2019-10-13 (annotated)
- 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?
User | Revision | Line number | New 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 | } |