tim003 tim003
/
LV8_ZAD1_Grupa6_Tim003
Haris Spahic Ensar Muratovic
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Mon Aug 1 2022 00:19:19 by 1.7.2