Enil Pajić , Irma Jakić

Dependencies:   TSI mbed

Committer:
tim010
Date:
Mon May 05 06:42:06 2014 +0000
Revision:
0:a9e40ce1b8c2
LV8-Grupa1-Tim010-Z1;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim010 0:a9e40ce1b8c2 1 #include "mbed.h"
tim010 0:a9e40ce1b8c2 2 #include <TSISensor.h>
tim010 0:a9e40ce1b8c2 3 //By EnilP, 04.05.2014, ETF PAI
tim010 0:a9e40ce1b8c2 4 Serial PC (USBTX, USBRX);
tim010 0:a9e40ce1b8c2 5 Ticker T, TTSI;
tim010 0:a9e40ce1b8c2 6 TSISensor TSI;
tim010 0:a9e40ce1b8c2 7 PwmOut LEDR (LED1), LEDG (LED2), LEDB (LED3);
tim010 0:a9e40ce1b8c2 8 int Duzina (const char *S) {int C = 0; while (*S++) ++C; return C;}
tim010 0:a9e40ce1b8c2 9 bool IsNum (const char C) {return C >= 48 && C <= 57; }
tim010 0:a9e40ce1b8c2 10 bool BuffOK (const char *C)
tim010 0:a9e40ce1b8c2 11 {return ((*C == 'R' || *C == 'G' || *C == 'B') && IsNum (C[1]) && IsNum (C[2])); }
tim010 0:a9e40ce1b8c2 12 void ReadTSI ()
tim010 0:a9e40ce1b8c2 13 {
tim010 0:a9e40ce1b8c2 14 if (PC.writeable()) //Provjeriti?
tim010 0:a9e40ce1b8c2 15 PC.printf ("TSI Vrijednost: %.0f%%\n", TSI.readPercentage() * 100.f);
tim010 0:a9e40ce1b8c2 16 }
tim010 0:a9e40ce1b8c2 17 void DoIt ()
tim010 0:a9e40ce1b8c2 18 {
tim010 0:a9e40ce1b8c2 19 if (!PC.readable()) return; //Provjeriti?
tim010 0:a9e40ce1b8c2 20 static char Buff[50];
tim010 0:a9e40ce1b8c2 21
tim010 0:a9e40ce1b8c2 22 char C = PC.getc();
tim010 0:a9e40ce1b8c2 23 while (C != 'R' && C != 'G' && C != 'B' && C != 'P' && C != 'Z') C = PC.getc();
tim010 0:a9e40ce1b8c2 24 Buff [0] = C;
tim010 0:a9e40ce1b8c2 25 if (C != 'P' && C != 'Z')
tim010 0:a9e40ce1b8c2 26 {
tim010 0:a9e40ce1b8c2 27 Buff [1] = PC.getc();
tim010 0:a9e40ce1b8c2 28 Buff [2] = PC.getc();
tim010 0:a9e40ce1b8c2 29 Buff[3] = '\0';
tim010 0:a9e40ce1b8c2 30 }
tim010 0:a9e40ce1b8c2 31 else
tim010 0:a9e40ce1b8c2 32 Buff[1] = '\0';// (Buff, 4); //Provjeriti, ...,4?
tim010 0:a9e40ce1b8c2 33 int D = Duzina (Buff);
tim010 0:a9e40ce1b8c2 34 if (D > 3) return;
tim010 0:a9e40ce1b8c2 35 else if (D == 3 && BuffOK (Buff))
tim010 0:a9e40ce1b8c2 36 {
tim010 0:a9e40ce1b8c2 37 double Val = double((Buff[1] - 48) * 10 + Buff[2] - 48) / 100.;
tim010 0:a9e40ce1b8c2 38 Val = 1. - Val;
tim010 0:a9e40ce1b8c2 39 char C = Buff[0];
tim010 0:a9e40ce1b8c2 40 if (C == 'R') LEDR = Val, LEDG = LEDB = 1.0;
tim010 0:a9e40ce1b8c2 41 else if (C == 'G') LEDG = Val, LEDR = LEDB = 1.0;
tim010 0:a9e40ce1b8c2 42 else LEDB = Val, LEDR = LEDG = 1.0;
tim010 0:a9e40ce1b8c2 43 }
tim010 0:a9e40ce1b8c2 44 else if (D == 1 && (Buff[0] == 'P' || Buff[0] == 'Z'))
tim010 0:a9e40ce1b8c2 45 {
tim010 0:a9e40ce1b8c2 46 if (Buff[0] == 'P') TTSI.attach (&ReadTSI, 1.0);
tim010 0:a9e40ce1b8c2 47 else TTSI.detach();
tim010 0:a9e40ce1b8c2 48 }
tim010 0:a9e40ce1b8c2 49 else return;
tim010 0:a9e40ce1b8c2 50
tim010 0:a9e40ce1b8c2 51 }
tim010 0:a9e40ce1b8c2 52 int main() //Novi tim
tim010 0:a9e40ce1b8c2 53 {
tim010 0:a9e40ce1b8c2 54 //TTSI.attach (&ReadTSI, 0.01);
tim010 0:a9e40ce1b8c2 55 T.attach (&DoIt, 0.05); //Regulirati 0.2, 0.1, 0.05, 0.01, 0.001
tim010 0:a9e40ce1b8c2 56 while (7);
tim010 0:a9e40ce1b8c2 57 }