BAse sous ,projet 3 - soufflerue
Dependents: SimonBaseProgrammeSP3-STM32-F411
affichage.cpp
- Committer:
- schnf30
- Date:
- 2021-02-23
- Revision:
- 1:7a1dd20a34b6
- Parent:
- 0:660735eb3958
File content as of revision 1:7a1dd20a34b6:
#include "mbed.h" #include "FT_Platform.h" #include "affichage.h" // NUCLEO F411RE FT800 TFT (PB_5,PB_4,PB_3,PA_8,PB_10,PA_9); // mosi, miso, sck, ss, int, pd char sliderVal = 0; // Variable pour les donnees a afficher // en liaison SP1 et Tablette volatile unsigned char ConsigneVitFluxAir; // Vitesse de Flux d'air consigne volatile unsigned char MesVitFluxAir; //Vitesse de Flux d'air mesure Sp1 volatile unsigned char TempSoufflerie; // temperature chambre soufflerie Sp1 volatile unsigned char HumiditéSoufflerie; // humidite chambre soufflerie SP1 // en liaison SP1 et Tablette volatile signed char ConsigneAngleIncid ; // Vitesse de Flux d'air consigne volatile signed char ConsigneChampPression[8] ; // Vitesse de Flux d'air consigne /* Angle incidence mesure Champs de pression : 8 valeurs Cx : coefficients de traînée (C_x) Cz : coefficients de portance (C_z) */ // permet d'indiquer qu'une variable a changer et qu'il faut reafficher l'ecran volatile bool DataChange = true; // true indique qu'il faut afficher l'ecran // permet d'affecter une valeur a consigne de flux d'air void SetConsigneVitFluxAir(unsigned char variable) { ConsigneVitFluxAir = variable; DataChange = true; } void InitScreen(void) { luminosite(128); TFT.Calibrate(); TFT.Track(244, 45, 161, 17, 2); } ft_void_t luminosite( ft_int32_t lum) { TFT.DLstart(); // wait until after the swap TFT.MemWrite(REG_PWM_DUTY, 4); // write to the PWM_DUTY register TFT.StartFunc( FT_CMD_SIZE*1); TFT.SendCmd(lum); TFT.EndFunc( (FT_CMD_SIZE*1)); TFT.Flush_Co_Buffer(); // Download the command list into fifo TFT.WaitCmdfifo_empty(); } ft_void_t drawline( ft_int32_t x0, ft_int32_t y0,ft_int32_t x1,ft_int32_t y1) { TFT.DL(BEGIN(LINES)); TFT.DL(VERTEX2F(x0*16,y0*16)); TFT.DL(VERTEX2F(x1*16,y1*16)); } /***********************************************************************************************************************/ /* Construct the screen and downloasd it to the TFT */ void AfficheEcranSp3() { TFT.DLstart(); TFT.DL(CLEAR_COLOR_RGB(255, 255, 255)); TFT.DL(CLEAR(1, 1, 1)); TFT.FgColor(0xC1004D); TFT.Keys(27, 127, 271, 41, 29, 0, "123"); TFT.DL(TAG(1)); TFT.Button(31, 32, 148, 57, 27, OPT_FLAT, "Button"); TFT.DL(TAG(2)); TFT.Slider(244, 45, 161, 17, 0, sliderVal, 255); // track the touch screen // a sortir mettre dans une fonction qui gere le tactile si besoins char pressedButton = TFT.Rd8(REG_TOUCH_TAG); int pressedSlider = TFT.Rd32(REG_TRACKER); if (pressedButton == 2) { sliderVal = (pressedSlider >> 16) * 255 / 65536; } TFT.DL(COLOR_RGB(0, 0, 0)); TFT.Text(28, 213, 28, 0, "REG_TOUCH_TAG"); TFT.Text(28, 237, 28, 0, "REG_TRACKER"); TFT.Number(230, 237, 28, 0, pressedButton); TFT.Number(230, 213, 28, 0, sliderVal); // pour afficher variable consigne vitesse de flux d'air TFT.Text(28, 190, 28, 0, "Consigne flux dair"); TFT.Number(230, 190, 28, 0, ConsigneVitFluxAir); drawline(28,191,470,191); TFT.DL(DISPLAY()); TFT.Swap(); TFT.Flush_Co_Buffer(); TFT.WaitCmdfifo_empty(); DataChange = false; }