tim007 tim007
/
LV1-Grupa1-Tim007-Zadatak1
Pajić Enil, Jarebica Azra
main.cpp@0:d570dafe8bdb, 2014-05-05 (annotated)
- Committer:
- tim007
- Date:
- Mon May 05 06:35:45 2014 +0000
- Revision:
- 0:d570dafe8bdb
LV8-Grupa001-Tim007
Who changed what in which revision?
User | Revision | Line number | New 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 | } |