Pajić Enil, Jarebica Azra

Dependencies:   TSI mbed

Committer:
tim007
Date:
Mon May 05 06:35:45 2014 +0000
Revision:
0:d570dafe8bdb
LV8-Grupa001-Tim007

Who changed what in which revision?

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