Anim
Dependencies: BSP_DISCO_F429ZI EEPROM_DISCO_F429ZI FT810 GYRO_DISCO_F429ZI KEYPAD_DISCO_F429ZI LCD_DISCO_F429ZI PinDetect SDRAM_DISCO_F429ZI TS_DISCO_F429ZI mbed
temp.h
- Committer:
- mozillain
- Date:
- 2018-01-24
- Revision:
- 1:2ceb29686290
File content as of revision 1:2ceb29686290:
/* #include "mbed.h" #include "FT_Platform.h" #include "Image.h" #include "pictures.h" #include "PinDetect.h" #include "mbcrc.h" #include <string> PinDetect Up(PF_4); PinDetect Down(PF_5); PinDetect Left(PF_2); PinDetect Right(PF_3); PinDetect Ok(PF_1); DigitalOut ho(PF_0); int menuNamber = 0; int virtualButtonNamber = 0; void main_menu(uint32_t tracker, uint8_t tag); void LoadImagesAndFonts(void); void HandleAllBitmaps(void); void StartDL(void); void FinishDL(void); void show_logo(void); void show_logo1(void); int tagoption = 0; unsigned char command[8]={0x03,0x06,0x20,0x00,0x00,0x01,0x00,0x00}; //Serial pc(SERIAL_TX, SERIAL_RX); //test Serial RS485(PA_9, PA_10); FT800 TFT( PE_6, PE_5, PE_2, PE_4, PC_13, PC_15); // ( mosi, miso, sclk, ss, intr, pd ); void send_command_to_RS485(unsigned char cmd) { RS485.format(8, Serial::None, 1); RS485.baud(9600); uint16_t crc16; crc16 = usMBCRC16( ( unsigned char * ) command, 6 ); command[5] = cmd; command[6] = ( unsigned char )( crc16 >> 8 ); command[7] = ( unsigned char )( crc16 & 0xFF ); ho = 1; // 3.3V output from digital out pin RS485.putc(command[0]); // slave add RS485.putc(command[1]); // function code RS485.putc(command[2]); // Hi PDU add RS485.putc(command[3]); // low PDU add RS485.putc(command[4]); // Hi N reg RS485.putc(command[5]); // Lo N reg RS485.putc(command[6]); // Hi CRC RS485.putc(command[7]); // Lo CRC ho=0; } void main_menu(uint32_t tracker, uint8_t tag) { time_t seconds = time(NULL); //start new display list StartDL(); TFT.DL(TAG(0)); // assign TAG value 0 to everything else //TFT.Calibrate(0); //TFT.DL(BEGIN(BITMAPS)); //TFT.DL(VERTEX2II(11, 15, 0, 0) ); //TFT.DL(END()); switch(virtualButtonNamber){ default: {TFT.Button(((TFT.DispWidth/2)-100), TFT.DispHeight/2, 400, 80, 30, 0, "Button1"); break; } case 1: {TFT.Button(((TFT.DispWidth/2)-100), TFT.DispHeight/2, 400, 80, 30, 0, "Up"); break;} case 2: {TFT.Button(((TFT.DispWidth/2)-100), TFT.DispHeight/2, 400, 80, 30, 0, "Down"); break;} case 3: {TFT.Button(((TFT.DispWidth/2)-100), TFT.DispHeight/2, 400, 80, 30, 0, "Left"); break;} case 4: {TFT.Button(((TFT.DispWidth/2)-100), TFT.DispHeight/2, 400, 80, 31, 0, "Right"); break;} case 5: {TFT.Button(((TFT.DispWidth/2)-100), TFT.DispHeight/2, 400, 80, 31, 0, "Ok"); break;} } TFT.DL(COLOR_RGB(0, 0, 0)); TFT.Text((TFT.DispWidth/2), TFT.DispHeight/24, 31, OPT_CENTERX, "Menu\0"); TFT.Button(100, 80, 600, 100, 31, 0, "Automatic mode"); //B1 TFT.Button(100, 200, 600, 100, 31, 0, "Manual mode"); //B2 TFT.Text((TFT.DispWidth/4), TFT.DispHeight*7/8, 28, OPT_CENTERX, "Run time [s]: \0"); // draw Text with font 31 TFT.Number((TFT.DispWidth/2), (TFT.DispHeight*7/8),28,OPT_CENTERX, seconds); TFT.DL(COLOR_RGB(0xFF, 0x00, 0x00)); TFT.Text((TFT.DispWidth*7/8)+9, (TFT.DispHeight*15/16), 28, OPT_CENTERX, "by Denis Nyzovets\0"); // draw Text with font 31 //display the screen FinishDL(); } void StartDL(void) { TFT.DLstart(); TFT.DL(CLEAR_COLOR_RGB(255, 255, 255)); TFT.DL(CLEAR(1, 1, 1)); } void FinishDL(void) { TFT.DL(DISPLAY()); TFT.Swap(); TFT.Flush_Co_Buffer(); TFT.WaitCmdfifo_empty(); } void show_logo(void) { /* TFT.WrCmd32(CMD_INFLATE); TFT.WrCmd32(IMAGE_ADDR_LOGO); TFT.WrCmdBufFromFlash(logo, sizeof(logo)); StartDL(); TFT.DL(BITMAP_HANDLE(0)); TFT.DL(BITMAP_SOURCE(IMAGE_ADDR_LOGO)); TFT.DL(BITMAP_LAYOUT(ARGB1555, 0, 309)); //TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 840, 480)); TFT.DL(BITMAP_SIZE(BILINEAR, BORDER, BORDER, 0, 309)); FinishDL(); StartDL(); TFT.DL(BEGIN(BITMAPS)); TFT.DL(VERTEX2II(0, 0, 0, 0)); TFT.DL(END()); FinishDL(); */ } void LoadImagesAndFonts(void) { TFT.WrCmd32(CMD_INFLATE); TFT.WrCmd32(IMAGE_ADDR_HUMIDITY); TFT.WrCmdBufFromFlash(hum_icon, sizeof(hum_icon)); /* TFT.WrCmd32(CMD_INFLATE); TFT.WrCmd32(IMAGE_ADDR_TEMPERATURE); TFT.WrCmdBufFromFlash(temp_icon, sizeof(temp_icon)); TFT.WrCmd32(CMD_INFLATE); TFT.WrCmd32(IMAGE_ADDR_SENSOR); TFT.WrCmdBufFromFlash(HYT_photo, sizeof(HYT_photo)); TFT.WrCmd32(CMD_INFLATE); TFT.WrCmd32(FONT_SET_ROBOTO_REGULAR_30); TFT.WrCmdBufFromFlash(font_RobotoRegular30, sizeof(font_RobotoRegular30)); TFT.WrCmd32(CMD_INFLATE); TFT.WrCmd32(FONT_SET_ROBOTO_REGULAR_16); TFT.WrCmdBufFromFlash(font_RobotoRegular16, sizeof(font_RobotoRegular16)); */ } void HandleAllBitmaps(void) { StartDL(); TFT.DL(BITMAP_HANDLE(0)); TFT.DL(BITMAP_SOURCE(IMAGE_ADDR_HUMIDITY)); TFT.DL(BITMAP_LAYOUT(ARGB4, 60, 38)); TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 30, 38)); /* TFT.DL(BITMAP_HANDLE(1)); TFT.DL(BITMAP_SOURCE(IMAGE_ADDR_TEMPERATURE)); TFT.DL(BITMAP_LAYOUT(ARGB4, 42, 42)); TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 21, 42)); TFT.DL(BITMAP_HANDLE(2)); TFT.DL(BITMAP_SOURCE(IMAGE_ADDR_SENSOR)); TFT.DL(BITMAP_LAYOUT(RGB332, 101, 147)); TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 101, 147)); TFT.DL(BITMAP_HANDLE(3)); TFT.DL(BITMAP_SOURCE(FONT_ADDR_ROBOTO_REGULAR_30)); TFT.DL(BITMAP_LAYOUT(L4, 16, 33)); TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 32, 33)); TFT.DL(BITMAP_HANDLE(4)); TFT.DL(BITMAP_SOURCE(FONT_ADDR_ROBOTO_REGULAR_16)); TFT.DL(BITMAP_LAYOUT(L4, 8, 20)); TFT.DL(BITMAP_SIZE(NEAREST, BORDER, BORDER, 16, 20)); TFT.SetFont(3, FONT_SET_ROBOTO_REGULAR_30); TFT.SetFont(4, FONT_SET_ROBOTO_REGULAR_16); */ FinishDL(); } void up_callback (void) { virtualButtonNamber=1; } void down_callback (void) { virtualButtonNamber=2; } void left_callback (void) { virtualButtonNamber=3; } void right_callback (void) { virtualButtonNamber=4; } void ok_callback (void) { virtualButtonNamber=5; } int main(void) { Up.mode(PullUp); Down.mode(PullUp); Left.mode(PullUp); Right.mode(PullUp); Ok.mode(PullUp); wait(.01); Up.attach_deasserted(&up_callback); Down.attach_deasserted(&down_callback); Left.attach_deasserted(&left_callback); Right.attach_deasserted(&right_callback); Ok.attach_deasserted(&ok_callback); Up.setSampleFrequency(); Down.setSampleFrequency(); Left.setSampleFrequency(); Right.setSampleFrequency(); Ok.setSampleFrequency(); //pc.printf("Press '1' to turn LED1 ON, '0' to turn it OFF\n"); //DigitalOut led(LED1); led=1; //screen1(0x0,0x0); set_time(0); // Set RTC time to 0 wait(1); //TFT.Logo(); DigitalOut led2(LED2); led2=1; //TFT.WaitLogo_Finish(); //LoadImagesAndFonts(); //HandleAllBitmaps(); while(1) main_menu(0x0,0x0); //show_logo1(); return 0; } */