fuck this
Dependencies: BMP280
LCD.cpp@16:1b3488fb67f5, 2018-01-07 (annotated)
- Committer:
- Swaggie
- Date:
- Sun Jan 07 00:02:29 2018 +0000
- Revision:
- 16:1b3488fb67f5
- Parent:
- 15:e61297f9bae9
- Child:
- 17:95b0b1ec0f90
Made good progress on LCD functions. Now constructs correctly.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Swaggie | 14:1fb1354ac27c | 1 | #include "mbed.h" |
Swaggie | 14:1fb1354ac27c | 2 | #include "LCD.h" |
Swaggie | 14:1fb1354ac27c | 3 | #include "TextLCD.h" |
Swaggie | 15:e61297f9bae9 | 4 | #include "rtos.h" |
Swaggie | 14:1fb1354ac27c | 5 | |
Swaggie | 16:1b3488fb67f5 | 6 | EnviromLCDDisplay::EnviromLCDDisplay(PinName rs, PinName e, PinName d4, PinName d5, PinName d6, PinName d7, PinName Button1Pin, PinName Button2) : TextLCD(rs, e, d4, d5, d7, d7), _DisplayScroll(), _LCDThread(), _Button2(Button2) |
Swaggie | 14:1fb1354ac27c | 7 | { |
Swaggie | 15:e61297f9bae9 | 8 | //Initialise all variables |
Swaggie | 15:e61297f9bae9 | 9 | _TState = MESSAGE; |
Swaggie | 15:e61297f9bae9 | 10 | _SState = PRESTEMP; |
Swaggie | 15:e61297f9bae9 | 11 | _temperature = 0.0; |
Swaggie | 15:e61297f9bae9 | 12 | _pressure = 0.0; |
Swaggie | 15:e61297f9bae9 | 13 | _ldr = 0.0; |
Swaggie | 15:e61297f9bae9 | 14 | _message = ""; |
Swaggie | 15:e61297f9bae9 | 15 | //_DisplayScroll = DisplayScroll; |
Swaggie | 15:e61297f9bae9 | 16 | //_LCDThread = LCDThread; |
Swaggie | 15:e61297f9bae9 | 17 | _Button1Pin = Button1Pin; |
Swaggie | 15:e61297f9bae9 | 18 | //_Button2 = Button2; |
Swaggie | 15:e61297f9bae9 | 19 | _AutoQuit = true; |
Swaggie | 14:1fb1354ac27c | 20 | } |
Swaggie | 14:1fb1354ac27c | 21 | |
Swaggie | 15:e61297f9bae9 | 22 | bool EnviromLCDDisplay::POST(void) |
Swaggie | 14:1fb1354ac27c | 23 | { |
Swaggie | 16:1b3488fb67f5 | 24 | printf("Push Button 1"); //Print to LCD |
Swaggie | 16:1b3488fb67f5 | 25 | while (!_Button2) {} //Wait until button is pushed |
Swaggie | 16:1b3488fb67f5 | 26 | return true; //The test has passed |
Swaggie | 14:1fb1354ac27c | 27 | } |
Swaggie | 14:1fb1354ac27c | 28 | |
Swaggie | 15:e61297f9bae9 | 29 | void EnviromLCDDisplay::Start(void) |
Swaggie | 14:1fb1354ac27c | 30 | { |
Swaggie | 15:e61297f9bae9 | 31 | DispMessage("Starting", true); //Set the LCD to display message on start |
Swaggie | 16:1b3488fb67f5 | 32 | _LCDThread.start(this, &EnviromLCDDisplay::LCDThreadFn); //Start the thread runnig |
Swaggie | 15:e61297f9bae9 | 33 | } |
Swaggie | 15:e61297f9bae9 | 34 | |
Swaggie | 15:e61297f9bae9 | 35 | void EnviromLCDDisplay::DispMessage(string message, bool returnToReadings) |
Swaggie | 15:e61297f9bae9 | 36 | { |
Swaggie | 16:1b3488fb67f5 | 37 | _message = message; //Set internal variable from input |
Swaggie | 16:1b3488fb67f5 | 38 | _TState = MESSAGE; //Move State machine to message |
Swaggie | 16:1b3488fb67f5 | 39 | _AutoQuit = returnToReadings; //Set internal variable from input |
Swaggie | 16:1b3488fb67f5 | 40 | } |
Swaggie | 16:1b3488fb67f5 | 41 | |
Swaggie | 16:1b3488fb67f5 | 42 | void EnviromLCDDisplay::LCDThreadFn(void) |
Swaggie | 16:1b3488fb67f5 | 43 | { |
Swaggie | 16:1b3488fb67f5 | 44 | while (1) |
Swaggie | 16:1b3488fb67f5 | 45 | { |
Swaggie | 16:1b3488fb67f5 | 46 | //Setup button 1 as Interrupt In |
Swaggie | 16:1b3488fb67f5 | 47 | switch (_TState) { |
Swaggie | 16:1b3488fb67f5 | 48 | case MESSAGE : |
Swaggie | 16:1b3488fb67f5 | 49 | //display a message on the screen |
Swaggie | 16:1b3488fb67f5 | 50 | |
Swaggie | 16:1b3488fb67f5 | 51 | cls(); //Clear the screen |
Swaggie | 16:1b3488fb67f5 | 52 | printf("%s", _message); //Put the message on the screen |
Swaggie | 16:1b3488fb67f5 | 53 | Thread::wait(3000); //Wait 3 secs before doing anything else |
Swaggie | 16:1b3488fb67f5 | 54 | if (_AutoQuit && (_TState == MESSAGE)) //Therefore button 1 interrupt won't be overwritten |
Swaggie | 16:1b3488fb67f5 | 55 | { |
Swaggie | 16:1b3488fb67f5 | 56 | _TState = SCROLLREADINGS; //Return to showing data |
Swaggie | 16:1b3488fb67f5 | 57 | _SState = PRESTEMP; //Go to screen 1 |
Swaggie | 16:1b3488fb67f5 | 58 | } |
Swaggie | 16:1b3488fb67f5 | 59 | break; |
Swaggie | 16:1b3488fb67f5 | 60 | case SCROLLREADINGS : |
Swaggie | 16:1b3488fb67f5 | 61 | //Show enviromental readings |
Swaggie | 16:1b3488fb67f5 | 62 | cls(); |
Swaggie | 16:1b3488fb67f5 | 63 | printf("Pres: xxxx.xmBar\n"); |
Swaggie | 16:1b3488fb67f5 | 64 | printf("Temp: xx.x C"); |
Swaggie | 16:1b3488fb67f5 | 65 | Thread::wait(2000); //Screen hold |
Swaggie | 16:1b3488fb67f5 | 66 | cls(); |
Swaggie | 16:1b3488fb67f5 | 67 | printf("LDR: xx.x, Taken"); |
Swaggie | 16:1b3488fb67f5 | 68 | printf("HH:mm, DD/MM"); |
Swaggie | 16:1b3488fb67f5 | 69 | Thread::wait(2000); |
Swaggie | 16:1b3488fb67f5 | 70 | break; |
Swaggie | 16:1b3488fb67f5 | 71 | case ADJUSTTIME : |
Swaggie | 16:1b3488fb67f5 | 72 | //Adjust time with userbuttons |
Swaggie | 16:1b3488fb67f5 | 73 | //delete button 1 as interupt in. |
Swaggie | 16:1b3488fb67f5 | 74 | |
Swaggie | 16:1b3488fb67f5 | 75 | |
Swaggie | 16:1b3488fb67f5 | 76 | //create button 1 as digital in. |
Swaggie | 16:1b3488fb67f5 | 77 | break; |
Swaggie | 16:1b3488fb67f5 | 78 | default : |
Swaggie | 16:1b3488fb67f5 | 79 | //Error code |
Swaggie | 16:1b3488fb67f5 | 80 | } |
Swaggie | 16:1b3488fb67f5 | 81 | } |
Swaggie | 14:1fb1354ac27c | 82 | } |