dujardin stephane
/
duj401_projets
projets de S3 S4 année 21 22
Diff: main.cpp
- Revision:
- 0:3cb0bc1eb7fa
- Child:
- 1:95a7e179a181
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon May 09 12:49:08 2016 +0000 @@ -0,0 +1,83 @@ +// 401version Ci image 0x 0y en haut à gauche +// led en 16 lignes ( repère fleché 0 0 ) +// image defilante .. version direct bmp classée en c et p +// rx en 200K bauds +// multi usages +#include "mbed.h" +//#include "stm32f4xx_hal_iwdg.h" +#define LOW 0 +#define HIGH 1 +#define R 0 +#define V 1 +#define B 2 +DigitalOut sd(PC_9); +Serial serie(NC, PC_7); // tx, rx +BusOut ABCD(PA_14,PB_0,PA_15,PC_1); // version 32/32 nucleo f401 +BusOut RVB(PA_7,PA_5,PA_4,PA_1,PA_6,PA_0); // RVB ( R a droite )un seul a ecrire +DigitalOut CLK(PC_2); // Data clock - rising edge +DigitalOut LAT(PC_0); // Data latch - active low (pulse up after data load) +DigitalOut OE(PC_3); // Output enable - active low (hold high during data load, bring low after LAT pulse) +//DigitalIn X0(PB_13);DigitalIn X1(PB_14);DigitalIn X2(PB_15); +//DigitalIn Y0(PB_9) ;DigitalIn Y1(PB_8) ;DigitalIn Y2(PC_9) ; + +char T[32][16][4]; // Tampon affichage 4 temps R1R2V1V2B1B2 32x32 (2*16 ) +char I[32][32][3]; // Y X rvb .. Image 32x32 en RVB 0 à 15 0: noir +int L; int M ; int O ; // variables globales idiotes +char J; char K ; char Q; char S ; char D; char F; // variables à la con +char G; char H ; char GG; +char T0 ; char T1 ; char T2 ; char T3; +int arr ; int prim ; int ptdat ;// arr char arrivé, prim temoin inactivité; ptdata nombre d'octet a recevoir .. +char rect[55]; // rec et commende 55 octets max +char tabc[1024] ; // pour y placer 256x4 = r+v+b+1 +char tabp[200][200]; // pour y placer les pixels arrives ici 200/200 +long ptfin ; // pointeur fin ( 2 + 256 3 + 256*256* 4 ) +int pt1 ; int pt2 ; int pt3 ;int pt4 ; +int pttr ; int pttv ; int pttb; +int etat ; // etat des actions a faire .. draw .. bmp .. .. +int com ; int com1 ; int com2 ; int com3 ; int com4 ; int ordrefait ; // com et passage parrametre commande +int longtempsa0 ; int trop ; // indique très longtemps sans RX ?? que faire ? on verra +int Li ; int Hi ;// indicateurs : taille, largeur, hauteur +int dx ; int dy ; // position du 32/32 dans l'image li hi +int ax ; int ay ; int comf ; // ax offset en plus de dx et dy +char pixt ; int rr; int vv ; int bb ; // pour des couleurs +int ptx; int pty ; int xx ; int yy ; // utile dans recv > 1078 +int bcl ; + +#include "LED.h" // transferts LED <>401 +//#include "tests.h" // oulils de test ( pas forcement utiles) +//#include "serie.h" // transfert RX 401<>1768 +#include "draw.h" // le tableau effectue un programme dans draw +//#include "etatbmp.h" // le tableau reagit à des commandes du 1768 r g +//#include "wdt.h" // watch dog securité + + + +//***************************************************fin wdt +void init () + { + + prim = 3; // compteur de vides de rx + ptfin = 54 ; // preset au cas ou trame de commande + dx = 0 ; dy = 0 ; // recherche adresse du tableau dans un 8*8 + ax = 0 ; ay = 0; // offset a ajouter a dx et dy pour mouvement + etat = 'd' ; // d draw état natif au reveil + longtempsa0 = 0 ; trop = 0 ; + Tr(); // efface T + Ir(); // efface I + ordrefait = 0; + } + +int main() +{ +init(); // initialisations importantes + +// +while(1) + { + if ( etat == 'd' ) draw(); // on est en draw d'un programme local ( TR ) sur une matrice + + IversT(); // recharge i vers T + Taffi(); // on met T vers les LEDs + + } +}