Thundersoft
/
MPU6050_for_TT_Mxx
Creating a project for TT_Mxx
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Tue Jul 12 2022 18:28:14 by 1.7.2