Haris Spahic Ensar Muratovic

Dependencies:   TSI mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "TSISensor.h"
00003  
00004 PwmOut r(LED1);
00005 PwmOut g(LED2);
00006 PwmOut b(LED3);
00007  
00008 Serial pc(USBTX, USBRX);
00009 TSISensor tsi;
00010 Ticker t1;
00011 char buf[100];
00012 int i=0;
00013 void upaliLedicu(char ledica, float intenzitet)
00014 {
00015     if(ledica == 'R')
00016     {
00017         r = 1.0 - intenzitet;
00018         g = 1.0;
00019         b = 1.0;
00020     }
00021     
00022     if(ledica == 'G')
00023     {
00024         r = 1.0;
00025         g = 1.0 - intenzitet;
00026         b = 1.0;
00027     }
00028     
00029     if(ledica == 'B')
00030     {
00031         r = 1.0;
00032         g = 1.0;
00033         b = 1.0 - intenzitet;
00034     }
00035 }
00036 void ispisiTSI()
00037 {
00038     pc.printf("\nTSI: %f", tsi.readPercentage());
00039 }
00040 
00041 void detektuj()
00042 {
00043     buf[i] = pc.getc();
00044     i++;
00045     if((buf[0] == 'R' or buf[0] == 'G' or buf[0] == 'B') and buf[1] >= '0' and buf[1] <= '9' and buf[2] >= '0' and buf[2] <= '9' and i == 3)
00046     {
00047         char ledica = buf[0];
00048         float broj=(buf[1]-48)*10+(buf[2]-48);
00049         
00050         float intenzitet = 1-((99.0-broj)/99.0);
00051         upaliLedicu(ledica, intenzitet);
00052         i = 0;
00053     }
00054     
00055     if(buf[0] == 'P' and i == 1)
00056     {
00057         i = 0;
00058         t1.attach(&ispisiTSI, 1);
00059     }
00060     
00061     if(buf[0] == 'Z' and i == 1)
00062     {
00063         i = 0;
00064         t1.detach();
00065     }
00066 }
00067 int main() {
00068      r=1;
00069      g=1;
00070      b=1;
00071      
00072      pc.attach(&detektuj);
00073 
00074 }