dujardin stephane
/
duj401_projets
projets de S3 S4 année 21 22
main.cpp@0:3cb0bc1eb7fa, 2016-05-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |