tim010 tim010
/
LV8-Grupa1-Tim010-Z1
Enil Pajić , Irma Jakić
main.cpp@0:a9e40ce1b8c2, 2014-05-05 (annotated)
- Committer:
- tim010
- Date:
- Mon May 05 06:42:06 2014 +0000
- Revision:
- 0:a9e40ce1b8c2
LV8-Grupa1-Tim010-Z1;
Who changed what in which revision?
User | Revision | Line number | New 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 | } |