tim010 tim010
/
LV8-Grupa1-Tim010-Z1
Enil Pajić , Irma Jakić
main.cpp
- Committer:
- tim010
- Date:
- 2014-05-05
- Revision:
- 0:a9e40ce1b8c2
File content as of revision 0:a9e40ce1b8c2:
#include "mbed.h" #include <TSISensor.h> //By EnilP, 04.05.2014, ETF PAI Serial PC (USBTX, USBRX); Ticker T, TTSI; TSISensor TSI; PwmOut LEDR (LED1), LEDG (LED2), LEDB (LED3); int Duzina (const char *S) {int C = 0; while (*S++) ++C; return C;} bool IsNum (const char C) {return C >= 48 && C <= 57; } bool BuffOK (const char *C) {return ((*C == 'R' || *C == 'G' || *C == 'B') && IsNum (C[1]) && IsNum (C[2])); } void ReadTSI () { if (PC.writeable()) //Provjeriti? PC.printf ("TSI Vrijednost: %.0f%%\n", TSI.readPercentage() * 100.f); } void DoIt () { if (!PC.readable()) return; //Provjeriti? static char Buff[50]; char C = PC.getc(); while (C != 'R' && C != 'G' && C != 'B' && C != 'P' && C != 'Z') C = PC.getc(); Buff [0] = C; if (C != 'P' && C != 'Z') { Buff [1] = PC.getc(); Buff [2] = PC.getc(); Buff[3] = '\0'; } else Buff[1] = '\0';// (Buff, 4); //Provjeriti, ...,4? int D = Duzina (Buff); if (D > 3) return; else if (D == 3 && BuffOK (Buff)) { double Val = double((Buff[1] - 48) * 10 + Buff[2] - 48) / 100.; Val = 1. - Val; char C = Buff[0]; if (C == 'R') LEDR = Val, LEDG = LEDB = 1.0; else if (C == 'G') LEDG = Val, LEDR = LEDB = 1.0; else LEDB = Val, LEDR = LEDG = 1.0; } else if (D == 1 && (Buff[0] == 'P' || Buff[0] == 'Z')) { if (Buff[0] == 'P') TTSI.attach (&ReadTSI, 1.0); else TTSI.detach(); } else return; } int main() //Novi tim { //TTSI.attach (&ReadTSI, 0.01); T.attach (&DoIt, 0.05); //Regulirati 0.2, 0.1, 0.05, 0.01, 0.001 while (7); }