This class encapsulates all the algorithms required for the displaying strings and time dependent patterns on the lcd.
Dependents: 200943412_QuickClick
Diff: Display.cpp
- Revision:
- 11:7ad2ea427784
- Parent:
- 10:6f5a88c24a07
- Child:
- 12:41e9ba6d65d3
--- a/Display.cpp Sun Apr 16 13:44:55 2017 +0000 +++ b/Display.cpp Sun Apr 16 19:37:09 2017 +0000 @@ -5,7 +5,14 @@ Display::Display() { - + _h = 0; + _w = 0.3; + _a = 0; + _v = 0; + x = 0; + y = 0; + x0 = 0; + y0 = 0; } Display::~Display() @@ -15,175 +22,136 @@ void Display::init() { - _h = 0; - _w = 0.3; - _a = 0; - _v = 0; - x = 0; - y = 0; - x0 = 0; - y0 = 0; + _h = 0; + _w = 0.3; + _a = 0; + _v = 0; + x = 0; + y = 0; + x0 = 0; + y0 = 0; } void Display::drawCircle(Controller &pad, N5110 &lcd) -{ - Circle(pad, lcd); - calculateWait(); - printf("%d\n",_h); +{ + Circle(pad, lcd); + calculateWait(); _h++; - lcd.clear(); + lcd.clear(); lcd.refresh(); -} + } -void Display::calculateWait() -{ - printf("Arc Number :- %d\n",_h); - _w = 0.3*exp(-0.03465*_h); - printf("Wait 1 :- %f7.6/n",_w); -} - -void Display::display_instruction(N5110 &lcd, int ran) -{ +void Display::calculateWait() +{ + _w = 0.2*exp(-0.0231*_h); + +} + +void Display::display_instruction(N5110 &lcd, int ran) { lcd.clear(); - printf("Random number :- %d\n",ran); - if (ran == 1) { + if (ran == 1){ lcd.printString("PRESS",28,2); - lcd.printChar('A',40,3); - } else if (ran == 2) { + lcd.printChar('A',40,3); } + else if (ran == 2){ lcd.printString("PRESS",28,2); - lcd.printChar('B',40,3); - } else if (ran == 3) { + lcd.printChar('B',40,3); } + else if (ran == 3){ lcd.printString("PRESS",28,2); - lcd.printChar('X',40,3); - } else if (ran == 4) { + lcd.printChar('X',40,3); } + else if (ran == 4){ lcd.printString("PRESS",28,2); - lcd.printChar('Y',40,3); - } else if (ran == 5) { + lcd.printChar('Y',40,3); } + else if (ran == 5){ lcd.printString("FLICK",28,2); - lcd.printChar('L',40,3); - } else if (ran == 6) { + lcd.printChar('L',40,3); } + else if (ran == 6){ lcd.printString("FLICK",28,2); - lcd.printChar('R',40,3); - } else { + lcd.printChar('R',40,3); } + else { lcd.printString("PRESS",28,2); - lcd.printString("STICK",28,3); - } - lcd.refresh(); -} - + lcd.printString("STICK",28,3); } + lcd.refresh(); + } + // function to draw circle -void Display::Circle(Controller &pad ,N5110 &lcd) +void Display::Circle(Controller &ctrl ,N5110 &lcd) { - for (int a = 0; a < 8; ++a) { - printf("forloop (a) :- %d\n",a); - Drawarc(lcd, a); - lcd.refresh(); - float Brightness = pad.pot_value(); - lcd.setBrightness(Brightness); - printf("potentiometer value :- %f7.6/n",Brightness); - printf("%f7.6/n",_w); - wait(_w); - lcd.setBrightness(0.0); - wait(_w); - } - -} - -void Display::Drawarc(N5110 &lcd, int a) -{ + for (int a = 0; a < 8; ++a) + { + Drawarc(lcd, a); + lcd.refresh(); + float Brightness = ctrl.pot_value(); + lcd.setBrightness(0.0); + wait(_w); + lcd.setBrightness(Brightness); + wait(_w); + } + + } + +void Display::Drawarc(N5110 &lcd, int a) { x = 20; y = 0; - + int a1; int b1; - radiusMod = 1-x; - printf("RadiusMod :- %d\n",radiusMod); - x0 = 42; + radiusMod = 1-x; + x0 = 42; y0 = 24; while(x >= y) { - - printf("x = %d\n", x); - printf("y = %d\n", y); - - switch(a) { - case 0 : { - a1 = y; - b1 = x * -1; - printf("a1 = %d\n", a1); - printf("b1 = %d\n", b1); - break; - } - case 1 : { - a1 = x; - b1 = y * -1; - printf("a1 = %d\n", a1); - printf("b1 = %d\n", b1); - break; - } - case 2 : { - a1 = x; - b1 = y; - printf("a1 = %d\n", a1); - printf("b1 = %d\n", b1); - break; - } - case 3 : { - a1 = y; - b1 = x; - printf("a1 = %d\n", a1); - printf("b1 = %d\n", b1); + + switch(a) { + case 0 : {a1 = y; + b1 = x * -1; + break; + } + case 1 : {a1 = x; + b1 = y * -1; + break; + } + case 2 : {a1 = x; + b1 = y; + break; + } + case 3 : {a1 = y; + b1 = x; + break; + } + case 4 : {a1 = y * -1; + b1 = x; + break; + } + case 5 : {a1 = x * -1; + b1 = y; + break; + } + case 6 : {a1 = x * -1; + b1 = y * -1; + break; + } + case 7 : {a1 = y * -1; + b1 = x * -1; + break; + } + default : { a1 = x; + b1 = y * -1; break; - } - case 4 : { - a1 = y * -1; - b1 = x; - printf("a1 = %d\n", a1); - printf("b1 = %d\n", b1); - break; - } - case 5 : { - a1 = x * -1; - b1 = y; - printf("a1 = %d\n", a1); - printf("b1 = %d\n", b1); - break; - } - case 6 : { - a1 = x * -1; - b1 = y * -1; - printf("a1 = %d\n", a1); - printf("b1 = %d\n", b1); - break; - } - case 7 : { - a1 = y * -1; - b1 = x * -1; - printf("a1 = %d\n", a1); - printf("b1 = %d\n", b1); - break; - } - default : { - a1 = x; - b1 = y * -1; - printf("a1 = %d\n", a1); - printf("b1 = %d\n", b1); - break; - } + } } - - - lcd.setPixel( a1 + x0, b1 + y0); - - y++; - - + + + lcd.setPixel( a1 + x0, b1 + y0); + + y++; + + if (radiusMod<0) { radiusMod += 2*y+1; } else { x--; radiusMod += 2*(y-x)+1; } - printf("radiusMod 1 = %d\n", radiusMod); + } } \ No newline at end of file