programme de base "fonctionnel" pour utiliser une carte L432 dans le cadre de mes projets
Dependencies: mbed
main.cpp@4:fdb2d0fefd66, 2019-09-18 (annotated)
- Committer:
- dujardin
- Date:
- Wed Sep 18 08:29:56 2019 +0000
- Revision:
- 4:fdb2d0fefd66
- Parent:
- 3:032c516c2ffa
- Child:
- 5:c404ef14ea33
septembre 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 | 4:fdb2d0fefd66 | 3 | //-------- programme de test carte mes432 ---------------- |
dujardin | 3:032c516c2ffa | 4 | // chaque seconde, numérise 4 valeurs sur ch1 ch2 |
dujardin | 3:032c516c2ffa | 5 | // et envoie betement une trame neutre en codage duj2 |
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 | 0:5945217144be | 27 | |
dujardin | 3:032c516c2ffa | 28 | void init(void) // initialisation |
dujardin | 3:032c516c2ffa | 29 | { |
dujardin | 4:fdb2d0fefd66 | 30 | pc.baud(19200); // vitesse liaison série |
dujardin | 4:fdb2d0fefd66 | 31 | pol = 1; // polarisation résistancesde l' I2C |
dujardin | 3:032c516c2ffa | 32 | LL = 0 ; // led du L432 on |
dujardin | 4:fdb2d0fefd66 | 33 | out1.write(0.5); // sortie ana A3 = 0.5 * 3.3V soit 1.6 V |
dujardin | 4:fdb2d0fefd66 | 34 | out2.write(0.25); // sortie ana A4 = 0.25* 3.3V soit 0.8 V |
dujardin | 4:fdb2d0fefd66 | 35 | IO = 0 ; // sortie I/O mise à 0 |
dujardin | 3:032c516c2ffa | 36 | } |
dujardin | 3:032c516c2ffa | 37 | |
dujardin | 3:032c516c2ffa | 38 | int main() |
dujardin | 3:032c516c2ffa | 39 | { |
dujardin | 3:032c516c2ffa | 40 | init(); |
dujardin | 1:1779a3279496 | 41 | |
dujardin | 0:5945217144be | 42 | while(1) // boucle sans fin |
dujardin | 3:032c516c2ffa | 43 | { |
dujardin | 4:fdb2d0fefd66 | 44 | LL = 1 ; // re allume Led carte |
dujardin | 4:fdb2d0fefd66 | 45 | IO = 1; // sortie IO mise à 1 ( led hors carte ) |
dujardin | 4:fdb2d0fefd66 | 46 | wait(0.5); // delai 0.5s |
dujardin | 3:032c516c2ffa | 47 | LL= 0 ; |
dujardin | 4:fdb2d0fefd66 | 48 | IO = 0 ; |
dujardin | 3:032c516c2ffa | 49 | wait(0.5); |
dujardin | 4:fdb2d0fefd66 | 50 | |
dujardin | 4:fdb2d0fefd66 | 51 | chi[1] = Ch1.read_u16(); // lecture ch1 mise en memoire 16bits |
dujardin | 4:fdb2d0fefd66 | 52 | chf[1] = Ch2.read(); // lecture ch2 mise en float en mémoire |
dujardin | 4:fdb2d0fefd66 | 53 | |
dujardin | 4:fdb2d0fefd66 | 54 | // transfert d'une trame de 4 entiers au protocole duj2 ( exemple) |
dujardin | 4:fdb2d0fefd66 | 55 | pc.putc('i'); // pointeur 1 = 0 |
dujardin | 4:fdb2d0fefd66 | 56 | pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('0');//Pt++ |
dujardin | 4:fdb2d0fefd66 | 57 | pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('1'); |
dujardin | 4:fdb2d0fefd66 | 58 | pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('2'); |
dujardin | 4:fdb2d0fefd66 | 59 | pc.putc('e'); pc.putc('0'); pc.putc('1'); pc.putc('0'); pc.putc('3'); |
dujardin | 4:fdb2d0fefd66 | 60 | pc.putc('q'); // mise en mémoire |
dujardin | 4:fdb2d0fefd66 | 61 | // on verra sur Tera Term |
dujardin | 4:fdb2d0fefd66 | 62 | // ceci " ie0100e0101e0102e0103q " |
dujardin | 4:fdb2d0fefd66 | 63 | // cette partie sera celle qui vous servira a valider votre processing |
dujardin | 4:fdb2d0fefd66 | 64 | |
dujardin | 4:fdb2d0fefd66 | 65 | //zone pour tester la carte et son cablage ( inutile pour processing) |
dujardin | 4:fdb2d0fefd66 | 66 | printf(" chi =0x%04x " , chi[1] ); |
dujardin | 4:fdb2d0fefd66 | 67 | printf(" chf =%.6f \n", 3.3*( chf[1])); |
dujardin | 4:fdb2d0fefd66 | 68 | // on lira sur Tera Term ( hors modifs sur le programme) |
dujardin | 4:fdb2d0fefd66 | 69 | // ceci " chi =0x80b8 chf =0.710769 " |
dujardin | 4:fdb2d0fefd66 | 70 | |
dujardin | 3:032c516c2ffa | 71 | } |
dujardin | 3:032c516c2ffa | 72 | } |