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 "HTU21D.h"
00003 
00004 
00005 
00006 
00007 
00008 #if __TT_M3HQ__
00009 #define DISPLAY_TMPM_STRING "Welcome to Thundersoft TT_M3HQ"
00010 #endif
00011 
00012 
00013 #if __TT_M4G9__
00014 #define DISPLAY_TMPM_STRING "Welcome to Thundersoft TT_M4G9"
00015 #endif
00016 
00017 
00018 #ifdef TEST_LCD
00019 LCD tft(LCD_SPI_CS,LCD_SPI_DC, LCD_MOSI_PIN, LCD_MISO_PIN, LCD_SPI_CL_PIN,LCD_BL_PIN);
00020 #else
00021 #define LCD int
00022 LCD tft;
00023 #endif
00024 
00025 
00026 
00027 
00028 
00029 /*macros for HTU21D*/
00030 #define DISPLAY_HTU21D_STRING "HTU21D Sensor:"
00031 #define DISPLAY_HTU21D_STRING_HIGH 16
00032 #define DISPLAY_HTU21D_TEM_VALUE_STRING  "Temperature value:"
00033 #define DISPLAY_HTU21D_TEM_VALUE_STRING_HIGH  32
00034 #define DISPLAY_HTU21D_TEM_VALUE_HIGH  48
00035 #define DISPLAY_HTU21D_HUM_VALUE_STRING  "Humidity value:"
00036 #define DISPLAY_HTU21D_HUM_VALUE_STRING_HIGH  64
00037 #define DISPLAY_HTU21D_HUM_VALUE_HIGH  80
00038 
00039 
00040 
00041 static void displayForHTU21D(LCD &lcd,HTU21D &htu)
00042 {
00043 #ifdef TEST_LCD
00044   lcd.drawString(0,0,DISPLAY_TMPM_STRING,RED);
00045   lcd.drawString(0,DISPLAY_HTU21D_STRING_HIGH,DISPLAY_HTU21D_STRING,RED);
00046   lcd.drawString(0,DISPLAY_HTU21D_TEM_VALUE_STRING_HIGH,DISPLAY_HTU21D_TEM_VALUE_STRING,RED);
00047   lcd.drawString(0,DISPLAY_HTU21D_HUM_VALUE_STRING_HIGH,DISPLAY_HTU21D_HUM_VALUE_STRING,RED);
00048 #endif
00049 }
00050 
00051 static void handleLCDForHTU21D(LCD &lcd,HTU21D &htu)
00052 {
00053   char temp_buffer[50];
00054   int temperature,humidity;
00055   while(1)
00056   {
00057     temperature = htu.sample_ctemp();
00058     humidity = htu.sample_humid();
00059     memset(temp_buffer,0,sizeof(temp_buffer));
00060     sprintf(temp_buffer,"%d",temperature);
00061     printf("HTU21D temperature = %d \r\n",temperature);
00062 #ifdef TEST_LCD
00063     lcd.drawString(0,DISPLAY_HTU21D_TEM_VALUE_HIGH,temp_buffer,RED);
00064 #endif
00065     memset(temp_buffer,0,sizeof(temp_buffer));
00066     sprintf(temp_buffer,"%d",humidity);
00067     printf("HTU21D humidity = %d \r\n",humidity);
00068 #ifdef TEST_LCD
00069     lcd.drawString(0,DISPLAY_HTU21D_HUM_VALUE_HIGH,temp_buffer,RED);
00070 #endif
00071     wait_ms(1000);
00072 #ifdef TEST_LCD
00073     lcd.clearScreenArea(0,DISPLAY_HTU21D_TEM_VALUE_HIGH,WHITE);
00074     lcd.clearScreenArea(0,DISPLAY_HTU21D_HUM_VALUE_HIGH,WHITE);
00075 #endif
00076   }
00077 }
00078 
00079 int main()
00080 {
00081   HTU21D htu;
00082   printf("%s\r\n",DISPLAY_TMPM_STRING);
00083 #ifdef TEST_LCD
00084   tft.init();
00085 #endif
00086   displayForHTU21D(tft,htu);
00087   handleLCDForHTU21D(tft,htu);
00088   while(1)
00089   {
00090   }
00091 }