Josmy Bar / Mbed 2 deprecated XenonSimulator

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "TextLCD.h"
00003 #include "string.h"
00004 
00005 #define MAXSamples 50
00006 
00007 #define MaxInsol 1160.0
00008 #define MaxTemp 1160.0
00009 
00010 
00011 TextLCD lcd(PA_8, PB_10, PA_10, PB_3, PB_5, PB_4); // rs, e, d4-d7
00012  
00013 AnalogIn Insol(A4);
00014 AnalogIn Temp(A5);
00015 
00016 Serial pc(SERIAL_TX, SERIAL_RX); 
00017 DigitalOut myled(LED1);
00018 float InsolR, TempR;
00019 uint16_t InsolMap, TempMap;
00020 
00021 char buff[40];
00022 //uint16_t buffer[7];
00023 int i;
00024 uint16_t FIFOI[5],FIFOT[5];
00025 
00026 uint32_t val;
00027 uint32_t count;
00028 
00029 int main() {
00030 
00031 /*
00032 while(1){
00033 
00034         sprintf(buff,"Inso:%4u  Temp:%4u",Insol.read_u16(),Temp.read_u16());
00035         
00036         pc.printf(buff);pc.printf("\n");
00037         wait(0.2);
00038 
00039     }
00040 */
00041 
00042 
00043 
00044 
00045 
00046 
00047 
00048 
00049     count=0;
00050     while(1) { 
00051 
00052         pc.printf("Count: %6u:",count++);pc.printf("  ");
00053 
00054         val=0;
00055         for(i=1;i<=MAXSamples;i++){
00056             val += Insol.read_u16();
00057             }
00058         val /= MAXSamples;    
00059         FIFOI[0] = FIFOI[1];
00060         FIFOI[1] = FIFOI[2];
00061         FIFOI[2] = FIFOI[3];
00062         FIFOI[3] = FIFOI[4];
00063         FIFOI[4] = (uint16_t)val;
00064         val = 0;
00065         for(i=0;i<=4;i++){
00066             val += FIFOI[i];
00067             }
00068         val /= 5;                
00069         InsolR = (float) val;
00070         
00071         val=0;
00072         for(i=1;i<=MAXSamples;i++){
00073             val += Temp.read_u16();
00074             }
00075         val /= MAXSamples;    
00076         FIFOT[0] = FIFOT[1];
00077         FIFOT[1] = FIFOT[2];
00078         FIFOT[2] = FIFOT[3];
00079         FIFOT[3] = FIFOT[4];
00080         FIFOT[4] = (uint16_t)val;
00081         val = 0;
00082         for(i=0;i<=4;i++){
00083             val += FIFOT[i];
00084             }
00085         val /= 5;                
00086         TempR = (float) val;
00087 
00088 
00089 
00090         InsolMap = (uint16_t)(InsolR  * MaxInsol/4095.0);
00091         TempMap = (uint16_t) (TempR  *MaxTemp/4095.0);
00092 
00093         sprintf(buff,"Inso:%4u mW/cm2",InsolMap/10);      
00094         pc.printf(buff);pc.printf("  ");
00095         
00096         lcd.locate(0,0);
00097         lcd.printf(buff);
00098         
00099         sprintf(buff,"Temp:%4u  deg C",TempMap/10);      
00100         pc.printf(buff);pc.printf("\n");
00101         
00102         lcd.locate(0,1);
00103         lcd.printf(buff);
00104         myled = !myled;
00105         wait(.2); 
00106     }
00107 }