This class encapsulates all the algorithms required for the displaying strings and time dependent patterns on the lcd.
Dependents: 200943412_QuickClick
Display.cpp
- Committer:
- domkay97
- Date:
- 2017-04-16
- Revision:
- 10:6f5a88c24a07
- Parent:
- 9:1e25dcab4927
- Child:
- 11:7ad2ea427784
File content as of revision 10:6f5a88c24a07:
#include "Display.h" #include "N5110.h" #include "Controller.h" #include <math.h> Display::Display() { } Display::~Display() { } void Display::init() { _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); _h++; 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) { lcd.clear(); printf("Random number :- %d\n",ran); if (ran == 1) { lcd.printString("PRESS",28,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.printString("PRESS",28,2); lcd.printChar('X',40,3); } else if (ran == 4) { lcd.printString("PRESS",28,2); lcd.printChar('Y',40,3); } else if (ran == 5) { lcd.printString("FLICK",28,2); lcd.printChar('L',40,3); } else if (ran == 6) { lcd.printString("FLICK",28,2); lcd.printChar('R',40,3); } else { lcd.printString("PRESS",28,2); lcd.printString("STICK",28,3); } lcd.refresh(); } // function to draw circle void Display::Circle(Controller &pad ,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) { x = 20; y = 0; int a1; int b1; radiusMod = 1-x; printf("RadiusMod :- %d\n",radiusMod); 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); 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++; if (radiusMod<0) { radiusMod += 2*y+1; } else { x--; radiusMod += 2*(y-x)+1; } printf("radiusMod 1 = %d\n", radiusMod); } }