projets de S3 S4 année 21 22

Dependencies:   mbed

Committer:
dujardin
Date:
Mon May 09 12:49:08 2016 +0000
Revision:
0:3cb0bc1eb7fa
Child:
1:95a7e179a181
version TR ?tudiants de S2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dujardin 0:3cb0bc1eb7fa 1 // 401version Ci image 0x 0y en haut à gauche
dujardin 0:3cb0bc1eb7fa 2 // led en 16 lignes ( repère fleché 0 0 )
dujardin 0:3cb0bc1eb7fa 3 // image defilante .. version direct bmp classée en c et p
dujardin 0:3cb0bc1eb7fa 4 // rx en 200K bauds
dujardin 0:3cb0bc1eb7fa 5 // multi usages
dujardin 0:3cb0bc1eb7fa 6 #include "mbed.h"
dujardin 0:3cb0bc1eb7fa 7 //#include "stm32f4xx_hal_iwdg.h"
dujardin 0:3cb0bc1eb7fa 8 #define LOW 0
dujardin 0:3cb0bc1eb7fa 9 #define HIGH 1
dujardin 0:3cb0bc1eb7fa 10 #define R 0
dujardin 0:3cb0bc1eb7fa 11 #define V 1
dujardin 0:3cb0bc1eb7fa 12 #define B 2
dujardin 0:3cb0bc1eb7fa 13 DigitalOut sd(PC_9);
dujardin 0:3cb0bc1eb7fa 14 Serial serie(NC, PC_7); // tx, rx
dujardin 0:3cb0bc1eb7fa 15 BusOut ABCD(PA_14,PB_0,PA_15,PC_1); // version 32/32 nucleo f401
dujardin 0:3cb0bc1eb7fa 16 BusOut RVB(PA_7,PA_5,PA_4,PA_1,PA_6,PA_0); // RVB ( R a droite )un seul a ecrire
dujardin 0:3cb0bc1eb7fa 17 DigitalOut CLK(PC_2); // Data clock - rising edge
dujardin 0:3cb0bc1eb7fa 18 DigitalOut LAT(PC_0); // Data latch - active low (pulse up after data load)
dujardin 0:3cb0bc1eb7fa 19 DigitalOut OE(PC_3); // Output enable - active low (hold high during data load, bring low after LAT pulse)
dujardin 0:3cb0bc1eb7fa 20 //DigitalIn X0(PB_13);DigitalIn X1(PB_14);DigitalIn X2(PB_15);
dujardin 0:3cb0bc1eb7fa 21 //DigitalIn Y0(PB_9) ;DigitalIn Y1(PB_8) ;DigitalIn Y2(PC_9) ;
dujardin 0:3cb0bc1eb7fa 22
dujardin 0:3cb0bc1eb7fa 23 char T[32][16][4]; // Tampon affichage 4 temps R1R2V1V2B1B2 32x32 (2*16 )
dujardin 0:3cb0bc1eb7fa 24 char I[32][32][3]; // Y X rvb .. Image 32x32 en RVB 0 à 15 0: noir
dujardin 0:3cb0bc1eb7fa 25 int L; int M ; int O ; // variables globales idiotes
dujardin 0:3cb0bc1eb7fa 26 char J; char K ; char Q; char S ; char D; char F; // variables à la con
dujardin 0:3cb0bc1eb7fa 27 char G; char H ; char GG;
dujardin 0:3cb0bc1eb7fa 28 char T0 ; char T1 ; char T2 ; char T3;
dujardin 0:3cb0bc1eb7fa 29 int arr ; int prim ; int ptdat ;// arr char arrivé, prim temoin inactivité; ptdata nombre d'octet a recevoir ..
dujardin 0:3cb0bc1eb7fa 30 char rect[55]; // rec et commende 55 octets max
dujardin 0:3cb0bc1eb7fa 31 char tabc[1024] ; // pour y placer 256x4 = r+v+b+1
dujardin 0:3cb0bc1eb7fa 32 char tabp[200][200]; // pour y placer les pixels arrives ici 200/200
dujardin 0:3cb0bc1eb7fa 33 long ptfin ; // pointeur fin ( 2 + 256 3 + 256*256* 4 )
dujardin 0:3cb0bc1eb7fa 34 int pt1 ; int pt2 ; int pt3 ;int pt4 ;
dujardin 0:3cb0bc1eb7fa 35 int pttr ; int pttv ; int pttb;
dujardin 0:3cb0bc1eb7fa 36 int etat ; // etat des actions a faire .. draw .. bmp .. ..
dujardin 0:3cb0bc1eb7fa 37 int com ; int com1 ; int com2 ; int com3 ; int com4 ; int ordrefait ; // com et passage parrametre commande
dujardin 0:3cb0bc1eb7fa 38 int longtempsa0 ; int trop ; // indique très longtemps sans RX ?? que faire ? on verra
dujardin 0:3cb0bc1eb7fa 39 int Li ; int Hi ;// indicateurs : taille, largeur, hauteur
dujardin 0:3cb0bc1eb7fa 40 int dx ; int dy ; // position du 32/32 dans l'image li hi
dujardin 0:3cb0bc1eb7fa 41 int ax ; int ay ; int comf ; // ax offset en plus de dx et dy
dujardin 0:3cb0bc1eb7fa 42 char pixt ; int rr; int vv ; int bb ; // pour des couleurs
dujardin 0:3cb0bc1eb7fa 43 int ptx; int pty ; int xx ; int yy ; // utile dans recv > 1078
dujardin 0:3cb0bc1eb7fa 44 int bcl ;
dujardin 0:3cb0bc1eb7fa 45
dujardin 0:3cb0bc1eb7fa 46 #include "LED.h" // transferts LED <>401
dujardin 0:3cb0bc1eb7fa 47 //#include "tests.h" // oulils de test ( pas forcement utiles)
dujardin 0:3cb0bc1eb7fa 48 //#include "serie.h" // transfert RX 401<>1768
dujardin 0:3cb0bc1eb7fa 49 #include "draw.h" // le tableau effectue un programme dans draw
dujardin 0:3cb0bc1eb7fa 50 //#include "etatbmp.h" // le tableau reagit à des commandes du 1768 r g
dujardin 0:3cb0bc1eb7fa 51 //#include "wdt.h" // watch dog securité
dujardin 0:3cb0bc1eb7fa 52
dujardin 0:3cb0bc1eb7fa 53
dujardin 0:3cb0bc1eb7fa 54
dujardin 0:3cb0bc1eb7fa 55 //***************************************************fin wdt
dujardin 0:3cb0bc1eb7fa 56 void init ()
dujardin 0:3cb0bc1eb7fa 57 {
dujardin 0:3cb0bc1eb7fa 58
dujardin 0:3cb0bc1eb7fa 59 prim = 3; // compteur de vides de rx
dujardin 0:3cb0bc1eb7fa 60 ptfin = 54 ; // preset au cas ou trame de commande
dujardin 0:3cb0bc1eb7fa 61 dx = 0 ; dy = 0 ; // recherche adresse du tableau dans un 8*8
dujardin 0:3cb0bc1eb7fa 62 ax = 0 ; ay = 0; // offset a ajouter a dx et dy pour mouvement
dujardin 0:3cb0bc1eb7fa 63 etat = 'd' ; // d draw état natif au reveil
dujardin 0:3cb0bc1eb7fa 64 longtempsa0 = 0 ; trop = 0 ;
dujardin 0:3cb0bc1eb7fa 65 Tr(); // efface T
dujardin 0:3cb0bc1eb7fa 66 Ir(); // efface I
dujardin 0:3cb0bc1eb7fa 67 ordrefait = 0;
dujardin 0:3cb0bc1eb7fa 68 }
dujardin 0:3cb0bc1eb7fa 69
dujardin 0:3cb0bc1eb7fa 70 int main()
dujardin 0:3cb0bc1eb7fa 71 {
dujardin 0:3cb0bc1eb7fa 72 init(); // initialisations importantes
dujardin 0:3cb0bc1eb7fa 73
dujardin 0:3cb0bc1eb7fa 74 //
dujardin 0:3cb0bc1eb7fa 75 while(1)
dujardin 0:3cb0bc1eb7fa 76 {
dujardin 0:3cb0bc1eb7fa 77 if ( etat == 'd' ) draw(); // on est en draw d'un programme local ( TR ) sur une matrice
dujardin 0:3cb0bc1eb7fa 78
dujardin 0:3cb0bc1eb7fa 79 IversT(); // recharge i vers T
dujardin 0:3cb0bc1eb7fa 80 Taffi(); // on met T vers les LEDs
dujardin 0:3cb0bc1eb7fa 81
dujardin 0:3cb0bc1eb7fa 82 }
dujardin 0:3cb0bc1eb7fa 83 }