![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Working Menu, additions to be made
Dependencies: mbed
main.cpp@2:d3676e11e2c6, 2021-12-10 (annotated)
- Committer:
- 25574069
- Date:
- Fri Dec 10 18:18:53 2021 +0000
- Revision:
- 2:d3676e11e2c6
- Parent:
- 1:a87075699085
- Child:
- 3:d1e1de4a712e
Re-added TMP102 library after previous corruption. Added short code to adjust LCD backlight with pot. Needs tweaking.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
25574069 | 1:a87075699085 | 1 | /* |
25574069 | 1:a87075699085 | 2 | Code for a IoT Temperature reading device. |
25574069 | 2:d3676e11e2c6 | 3 | Acknowledgements to Dr Craig A. Evans and Dr Edmond Nurellari. |
25574069 | 1:a87075699085 | 4 | **/ |
25574069 | 1:a87075699085 | 5 | |
25574069 | 0:d4d7e882c87d | 6 | #include "mbed.h" |
25574069 | 0:d4d7e882c87d | 7 | #include "N5110.h" |
25574069 | 0:d4d7e882c87d | 8 | #include "Joystick.h" |
25574069 | 2:d3676e11e2c6 | 9 | #include "TMP102.h" |
25574069 | 0:d4d7e882c87d | 10 | |
25574069 | 1:a87075699085 | 11 | //Defines |
25574069 | 0:d4d7e882c87d | 12 | AnalogIn pot(PTB2); |
25574069 | 0:d4d7e882c87d | 13 | |
25574069 | 1:a87075699085 | 14 | //LCD Sprite: |
25574069 | 1:a87075699085 | 15 | // rows,cols |
25574069 | 0:d4d7e882c87d | 16 | int sprite[8][5] = { |
25574069 | 0:d4d7e882c87d | 17 | { 0,0,1,0,0 }, |
25574069 | 0:d4d7e882c87d | 18 | { 0,1,1,1,0 }, |
25574069 | 0:d4d7e882c87d | 19 | { 0,0,1,0,0 }, |
25574069 | 0:d4d7e882c87d | 20 | { 0,1,1,1,0 }, |
25574069 | 0:d4d7e882c87d | 21 | { 1,1,1,1,1 }, |
25574069 | 0:d4d7e882c87d | 22 | { 1,1,1,1,1 }, |
25574069 | 0:d4d7e882c87d | 23 | { 1,1,0,1,1 }, |
25574069 | 0:d4d7e882c87d | 24 | { 1,1,0,1,1 }, |
25574069 | 0:d4d7e882c87d | 25 | }; |
25574069 | 0:d4d7e882c87d | 26 | |
25574069 | 0:d4d7e882c87d | 27 | //Objects |
25574069 | 0:d4d7e882c87d | 28 | Ticker bl_ticker; |
25574069 | 0:d4d7e882c87d | 29 | |
25574069 | 1:a87075699085 | 30 | // Global Volatile Interrupt flags |
25574069 | 0:d4d7e882c87d | 31 | volatile int g_bl_timer_flag; |
25574069 | 0:d4d7e882c87d | 32 | |
25574069 | 1:a87075699085 | 33 | // Setup interrupts |
25574069 | 0:d4d7e882c87d | 34 | void bl_timer_isr(); |
25574069 | 0:d4d7e882c87d | 35 | |
25574069 | 1:a87075699085 | 36 | //Data |
25574069 | 0:d4d7e882c87d | 37 | float bright; |
25574069 | 0:d4d7e882c87d | 38 | |
25574069 | 0:d4d7e882c87d | 39 | //Pinouts |
25574069 | 1:a87075699085 | 40 | // SCE, RST, D/C, MOSI,SCLK,LED |
25574069 | 0:d4d7e882c87d | 41 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3 |
25574069 | 1:a87075699085 | 42 | // y x button |
25574069 | 0:d4d7e882c87d | 43 | Joystick joystick(PTB10,PTB11,PTC16); |
25574069 | 2:d3676e11e2c6 | 44 | //I2C SDA SCL |
25574069 | 2:d3676e11e2c6 | 45 | TMP102 tmp(PTE24,PTE25); |
25574069 | 0:d4d7e882c87d | 46 | |
25574069 | 0:d4d7e882c87d | 47 | |
25574069 | 0:d4d7e882c87d | 48 | int main() { |
25574069 | 0:d4d7e882c87d | 49 | |
25574069 | 1:a87075699085 | 50 | //Initialise devices |
25574069 | 0:d4d7e882c87d | 51 | lcd.init(); |
25574069 | 2:d3676e11e2c6 | 52 | joystick.init(); |
25574069 | 2:d3676e11e2c6 | 53 | tmp.init(); |
25574069 | 2:d3676e11e2c6 | 54 | |
25574069 | 0:d4d7e882c87d | 55 | lcd.setContrast(0.4); |
25574069 | 0:d4d7e882c87d | 56 | |
25574069 | 0:d4d7e882c87d | 57 | //Set up ticker (time in seconds) |
25574069 | 0:d4d7e882c87d | 58 | bl_ticker.attach(&bl_timer_isr,0.01); |
25574069 | 0:d4d7e882c87d | 59 | |
25574069 | 0:d4d7e882c87d | 60 | while (1){ |
25574069 | 0:d4d7e882c87d | 61 | |
25574069 | 1:a87075699085 | 62 | //Read pot value and assign to variable |
25574069 | 0:d4d7e882c87d | 63 | if(pot > 0.1f) { |
25574069 | 0:d4d7e882c87d | 64 | bright = 0.1; |
25574069 | 0:d4d7e882c87d | 65 | } if(pot > 0.2f) { |
25574069 | 0:d4d7e882c87d | 66 | bright = 0.2; |
25574069 | 0:d4d7e882c87d | 67 | } if (pot > 0.3f) { |
25574069 | 0:d4d7e882c87d | 68 | bright = 0.3; |
25574069 | 0:d4d7e882c87d | 69 | } if (pot > 0.4f) { |
25574069 | 0:d4d7e882c87d | 70 | bright = 0.4; |
25574069 | 0:d4d7e882c87d | 71 | } if (pot > 0.5f) { |
25574069 | 0:d4d7e882c87d | 72 | bright = 0.5; |
25574069 | 0:d4d7e882c87d | 73 | } if(pot > 0.6f) { |
25574069 | 0:d4d7e882c87d | 74 | bright = 0.6; |
25574069 | 0:d4d7e882c87d | 75 | } if(pot > 0.7f) { |
25574069 | 0:d4d7e882c87d | 76 | bright = 0.7; |
25574069 | 0:d4d7e882c87d | 77 | } if (pot > 0.8f) { |
25574069 | 0:d4d7e882c87d | 78 | bright = 0.8; |
25574069 | 0:d4d7e882c87d | 79 | } if (pot > 0.9f) { |
25574069 | 0:d4d7e882c87d | 80 | bright = 0.9; |
25574069 | 0:d4d7e882c87d | 81 | } if (pot > 1.0f) { |
25574069 | 0:d4d7e882c87d | 82 | bright = 1.0; |
25574069 | 0:d4d7e882c87d | 83 | } |
25574069 | 0:d4d7e882c87d | 84 | |
25574069 | 1:a87075699085 | 85 | //Check interrupt flags: |
25574069 | 1:a87075699085 | 86 | //LCD backlight interrupt |
25574069 | 0:d4d7e882c87d | 87 | if (g_bl_timer_flag) { |
25574069 | 1:a87075699085 | 88 | g_bl_timer_flag = 0; //if flag is set, clear |
25574069 | 0:d4d7e882c87d | 89 | |
25574069 | 1:a87075699085 | 90 | lcd.setBrightness(bright); //set brightness based on pot value |
25574069 | 0:d4d7e882c87d | 91 | } |
25574069 | 0:d4d7e882c87d | 92 | |
25574069 | 0:d4d7e882c87d | 93 | } |
25574069 | 0:d4d7e882c87d | 94 | } |
25574069 | 0:d4d7e882c87d | 95 | |
25574069 | 0:d4d7e882c87d | 96 | // time-triggered interrupt for red |
25574069 | 0:d4d7e882c87d | 97 | void bl_timer_isr() |
25574069 | 0:d4d7e882c87d | 98 | { |
25574069 | 0:d4d7e882c87d | 99 | g_bl_timer_flag = 1; // set flag in ISR |
25574069 | 0:d4d7e882c87d | 100 | } |
25574069 | 0:d4d7e882c87d | 101 | |
25574069 | 1:a87075699085 | 102 | //Had multiple issues where code isn't changed but comments are added, suddenly defines don't work anymore "not defined" |