Creating a project for TT_Mxx

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "MPU6050.h"
00003 
00004 
00005 
00006 
00007 
00008 
00009 #ifdef TEST_LCD
00010 LCD tft(LCD_SPI_CS,LCD_SPI_DC, LCD_MOSI_PIN, LCD_MISO_PIN, LCD_SPI_CL_PIN,LCD_BL_PIN);
00011 #else
00012 #define LCD int
00013 LCD tft;
00014 #endif
00015 
00016 
00017 #if __TT_M3HQ__
00018 #define DISPLAY_TMPM_STRING "Welcome to Thundersoft TT_M3HQ"
00019 #endif
00020 
00021 
00022 #if __TT_M4G9__
00023 #define DISPLAY_TMPM_STRING "Welcome to Thundersoft TT_M4G9"
00024 #endif
00025 
00026 /*macros for MPU6050 sensor*/
00027 #define DISPLAY_MPU6050_ID_STRING "MPU6050 ID:"
00028 #define DISPLAY_MPU6050_ID_STRING_HIGH 16
00029 #define DISPLAY_MPU6050_ACC_STRING "MPU6050 ACC:"
00030 #define DISPLAY_MPU6050_ACC_STRING_HIGH   32
00031 #define DISPLAY_MPU6050_ACC_VALUE_HIGH   48
00032 #define DISPLAY_MPU6050_MAG_STRING "MPU6050 MAG:"
00033 #define DISPLAY_MPU6050_MAG_HIGH 64
00034 #define DISPLAY_MPU6050_MAG_VALUE_HIGH 80
00035 
00036 
00037 static void displayForMPU6050(LCD &lcd,MPU6050 &mpu6050)
00038 {
00039 #ifdef TEST_LCD
00040   lcd.drawString(0,0,DISPLAY_TMPM_STRING,RED);
00041   displayId(lcd,DISPLAY_MPU6050_ID_STRING,sizeof(DISPLAY_MPU6050_ID_STRING),DISPLAY_MPU6050_ID_STRING_HIGH,mpu6050.getDeviceID());
00042   lcd.drawString(0,DISPLAY_MPU6050_ACC_STRING_HIGH,DISPLAY_MPU6050_ACC_STRING,RED);
00043   lcd.drawString(0,DISPLAY_MPU6050_MAG_HIGH,DISPLAY_MPU6050_MAG_STRING,RED);
00044 #endif
00045 }
00046 
00047 static void handleLCDForMPU6050(LCD &lcd,MPU6050 &mpu6050)
00048 {
00049   uint16_t acc[3];
00050   uint16_t mag[3];
00051   char temp_buffer[50];
00052   while(1)
00053   {
00054     
00055     acc[0] = mpu6050.getX();
00056     acc[1] = mpu6050.getY();
00057     acc[2] = mpu6050.getZ();
00058     mag[0] = mpu6050.getGX();
00059     mag[1] = mpu6050.getGY();
00060     mag[2] = mpu6050.getGZ();
00061     memset(temp_buffer,0,sizeof(temp_buffer));
00062     sprintf(temp_buffer,"%d,%d,%d",acc[0],acc[1],acc[2]);
00063 #ifdef TEST_LCD
00064     lcd.drawString(0,DISPLAY_MPU6050_ACC_VALUE_HIGH,temp_buffer,RED);
00065 #endif
00066     printf("MPU6050 ACC data = %d,%d,%d \r\n",acc[0],acc[1],acc[2]);
00067     memset(temp_buffer,0,sizeof(temp_buffer));
00068     sprintf(temp_buffer,"%d,%d,%d",mag[0],mag[1],mag[2]);
00069 #ifdef TEST_LCD
00070     lcd.drawString(0,DISPLAY_MPU6050_MAG_VALUE_HIGH,temp_buffer,RED);
00071 #endif
00072     printf("MPU6050 MAG data = %d,%d,%d \r\n",mag[0],mag[1],mag[2]);
00073     wait_ms(1000);
00074 #ifdef TEST_LCD
00075     lcd.clearScreenArea(0,DISPLAY_MPU6050_ACC_VALUE_HIGH,WHITE);
00076     lcd.clearScreenArea(0,DISPLAY_MPU6050_MAG_VALUE_HIGH,WHITE);
00077 #endif
00078   }
00079 }
00080 
00081 
00082 int main()
00083 {
00084   MPU6050 mp;
00085   printf("%s\r\n",DISPLAY_TMPM_STRING);
00086   printf("MPU6050 ID = 0x%x \r\n",mp.getDeviceID());
00087 #ifdef TEST_LCD
00088   tft.init();
00089 #endif
00090   displayForMPU6050(tft,mp);
00091   handleLCDForMPU6050(tft,mp);
00092   while(1)
00093   {
00094   }
00095 }