Ben Gordon
/
ELEC351_GroupA_alternate
temp
displayThread.cpp
- Committer:
- BenRJG
- Date:
- 2018-12-06
- Revision:
- 0:2a4af0cb6e8d
File content as of revision 0:2a4af0cb6e8d:
#include "displayThread.h" //InterruptIn button1(b1); //InterruptIn button2(b2); InterruptIn button1(b1); InterruptIn button2(b2); U_BYTE buttonPressed; signed INT_32 increment[] = {10,1,10,1,1000,100,10,1,10,1,10,1,10,1}; signed INT_32 cursorPosition[] = {0,1,3,4,6,7,8,9,11,12,14,15}; dateTime d; Pages page(RS,E,d4,d5,d6,d7); //rs,e,d4,d5,d6,d7 U_BYTE cursorPos=0; enum pageNumber {PAGEONE, PAGETWO, PAGETHREE}; pageNumber currentPage; EventQueue buttonQueue; Timeout doublePress; void DisplayThread() { page.INIT(); page.pageOne(); page.pageOne(); currentPage = PAGEONE; buttonPressed = 0; button1.rise(buttonISR1); button2.rise(buttonISR2); while(1) { buttonQueue.dispatch_forever(); } } void pageSelect(U_BYTE buttonValue) { switch (currentPage) { case PAGEONE: buttonActionOne(buttonValue); break; case PAGETWO: buttonActionTwo(buttonValue); break; case PAGETHREE: buttonActionThree(buttonValue); break; } } void buttonActionOne(U_BYTE buttonValue) { switch(buttonValue) { case 0x01: page.pageTwo(); currentPage = PAGETWO; page.setDateTime(d.getTime()); cursorPos=0; break; //case 0x02: // page.pageOne(); // currentPage = PAGEONE; // break; case 0x03: page.pageThree(); currentPage = PAGETHREE; break; } } void buttonActionTwo(U_BYTE buttonValue) { switch (buttonValue) { case 0x01: setValue(cursorPos,increment[cursorPos]); break; case 0x02: setValue(cursorPos,0-increment[cursorPos]); break; case 0x03: cursorPos++; break; } page.cursorPos(LINE1+cursorPosition[cursorPos]); if(cursorPos == 12) { page.pageOne(); currentPage = PAGEONE; } } void buttonActionThree(U_BYTE buttonValue) { switch(buttonValue) { case 0x01: page.pageOne(); currentPage = PAGEONE; break; } } void setValue(BYTE cycle,signed INT_32 value) { switch(cycle){ case 0: case 1: d.addDay(value); page.setDateTime(d.getTime()); break; case 2: case 3: d.addMonth(value); page.setDateTime(d.getTime()); break; case 4: case 5: case 6: case 7: d.addYear(value); page.setDateTime(d.getTime()); break; case 8: case 9: d.addHour(value); page.setDateTime(d.getTime()); break; case 10: case 11: d.addMin(value); page.setDateTime(d.getTime()); break; /*case 12: case 13: d.addSec(value); page.setDateTime(d.getTime()); break;*/ } } void buttonISR1() { buttonPressed |= 1; if(buttonPressed != 3){ doublePress.attach(&buttonTO, 0.2); } } void buttonISR2() { buttonPressed |= 2; if(buttonPressed != 3){ doublePress.attach(&buttonTO, 0.2); } } void buttonTO() { if(buttonPressed != 0){ buttonQueue.call(&pageSelect,buttonPressed); buttonPressed = 0; } }