Working Menu, additions to be made
Dependencies: mbed
main.cpp@1:a87075699085, 2021-12-07 (annotated)
- Committer:
- 25574069
- Date:
- Tue Dec 07 05:01:37 2021 +0000
- Revision:
- 1:a87075699085
- Parent:
- 0:d4d7e882c87d
- Child:
- 2:d3676e11e2c6
As before, with comments.
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 | 1:a87075699085 | 3 | Acknowledgements to xxxxx |
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 | 0:d4d7e882c87d | 9 | |
25574069 | 1:a87075699085 | 10 | //Defines |
25574069 | 0:d4d7e882c87d | 11 | AnalogIn pot(PTB2); |
25574069 | 0:d4d7e882c87d | 12 | |
25574069 | 1:a87075699085 | 13 | //LCD Sprite: |
25574069 | 1:a87075699085 | 14 | // rows,cols |
25574069 | 0:d4d7e882c87d | 15 | int sprite[8][5] = { |
25574069 | 0:d4d7e882c87d | 16 | { 0,0,1,0,0 }, |
25574069 | 0:d4d7e882c87d | 17 | { 0,1,1,1,0 }, |
25574069 | 0:d4d7e882c87d | 18 | { 0,0,1,0,0 }, |
25574069 | 0:d4d7e882c87d | 19 | { 0,1,1,1,0 }, |
25574069 | 0:d4d7e882c87d | 20 | { 1,1,1,1,1 }, |
25574069 | 0:d4d7e882c87d | 21 | { 1,1,1,1,1 }, |
25574069 | 0:d4d7e882c87d | 22 | { 1,1,0,1,1 }, |
25574069 | 0:d4d7e882c87d | 23 | { 1,1,0,1,1 }, |
25574069 | 0:d4d7e882c87d | 24 | }; |
25574069 | 0:d4d7e882c87d | 25 | |
25574069 | 0:d4d7e882c87d | 26 | //Objects |
25574069 | 0:d4d7e882c87d | 27 | Ticker bl_ticker; |
25574069 | 0:d4d7e882c87d | 28 | |
25574069 | 1:a87075699085 | 29 | // Global Volatile Interrupt flags |
25574069 | 0:d4d7e882c87d | 30 | volatile int g_bl_timer_flag; |
25574069 | 0:d4d7e882c87d | 31 | |
25574069 | 1:a87075699085 | 32 | // Setup interrupts |
25574069 | 0:d4d7e882c87d | 33 | void bl_timer_isr(); |
25574069 | 0:d4d7e882c87d | 34 | |
25574069 | 1:a87075699085 | 35 | //Data |
25574069 | 0:d4d7e882c87d | 36 | float bright; |
25574069 | 0:d4d7e882c87d | 37 | |
25574069 | 0:d4d7e882c87d | 38 | //Pinouts |
25574069 | 1:a87075699085 | 39 | // SCE, RST, D/C, MOSI,SCLK,LED |
25574069 | 0:d4d7e882c87d | 40 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3 |
25574069 | 1:a87075699085 | 41 | // y x button |
25574069 | 0:d4d7e882c87d | 42 | Joystick joystick(PTB10,PTB11,PTC16); |
25574069 | 0:d4d7e882c87d | 43 | |
25574069 | 0:d4d7e882c87d | 44 | |
25574069 | 0:d4d7e882c87d | 45 | int main() { |
25574069 | 0:d4d7e882c87d | 46 | |
25574069 | 1:a87075699085 | 47 | //Initialise devices |
25574069 | 0:d4d7e882c87d | 48 | lcd.init(); |
25574069 | 0:d4d7e882c87d | 49 | lcd.setContrast(0.4); |
25574069 | 0:d4d7e882c87d | 50 | |
25574069 | 0:d4d7e882c87d | 51 | //Set up ticker (time in seconds) |
25574069 | 0:d4d7e882c87d | 52 | bl_ticker.attach(&bl_timer_isr,0.01); |
25574069 | 0:d4d7e882c87d | 53 | |
25574069 | 0:d4d7e882c87d | 54 | while (1){ |
25574069 | 0:d4d7e882c87d | 55 | |
25574069 | 1:a87075699085 | 56 | //Read pot value and assign to variable |
25574069 | 0:d4d7e882c87d | 57 | if(pot > 0.1f) { |
25574069 | 0:d4d7e882c87d | 58 | bright = 0.1; |
25574069 | 0:d4d7e882c87d | 59 | } if(pot > 0.2f) { |
25574069 | 0:d4d7e882c87d | 60 | bright = 0.2; |
25574069 | 0:d4d7e882c87d | 61 | } if (pot > 0.3f) { |
25574069 | 0:d4d7e882c87d | 62 | bright = 0.3; |
25574069 | 0:d4d7e882c87d | 63 | } if (pot > 0.4f) { |
25574069 | 0:d4d7e882c87d | 64 | bright = 0.4; |
25574069 | 0:d4d7e882c87d | 65 | } if (pot > 0.5f) { |
25574069 | 0:d4d7e882c87d | 66 | bright = 0.5; |
25574069 | 0:d4d7e882c87d | 67 | } if(pot > 0.6f) { |
25574069 | 0:d4d7e882c87d | 68 | bright = 0.6; |
25574069 | 0:d4d7e882c87d | 69 | } if(pot > 0.7f) { |
25574069 | 0:d4d7e882c87d | 70 | bright = 0.7; |
25574069 | 0:d4d7e882c87d | 71 | } if (pot > 0.8f) { |
25574069 | 0:d4d7e882c87d | 72 | bright = 0.8; |
25574069 | 0:d4d7e882c87d | 73 | } if (pot > 0.9f) { |
25574069 | 0:d4d7e882c87d | 74 | bright = 0.9; |
25574069 | 0:d4d7e882c87d | 75 | } if (pot > 1.0f) { |
25574069 | 0:d4d7e882c87d | 76 | bright = 1.0; |
25574069 | 0:d4d7e882c87d | 77 | } |
25574069 | 0:d4d7e882c87d | 78 | |
25574069 | 1:a87075699085 | 79 | //Check interrupt flags: |
25574069 | 1:a87075699085 | 80 | //LCD backlight interrupt |
25574069 | 0:d4d7e882c87d | 81 | if (g_bl_timer_flag) { |
25574069 | 1:a87075699085 | 82 | g_bl_timer_flag = 0; //if flag is set, clear |
25574069 | 0:d4d7e882c87d | 83 | |
25574069 | 1:a87075699085 | 84 | lcd.setBrightness(bright); //set brightness based on pot value |
25574069 | 0:d4d7e882c87d | 85 | } |
25574069 | 0:d4d7e882c87d | 86 | |
25574069 | 0:d4d7e882c87d | 87 | } |
25574069 | 0:d4d7e882c87d | 88 | } |
25574069 | 0:d4d7e882c87d | 89 | |
25574069 | 0:d4d7e882c87d | 90 | // time-triggered interrupt for red |
25574069 | 0:d4d7e882c87d | 91 | void bl_timer_isr() |
25574069 | 0:d4d7e882c87d | 92 | { |
25574069 | 0:d4d7e882c87d | 93 | g_bl_timer_flag = 1; // set flag in ISR |
25574069 | 0:d4d7e882c87d | 94 | } |
25574069 | 0:d4d7e882c87d | 95 | |
25574069 | 1:a87075699085 | 96 | //Had multiple issues where code isn't changed but comments are added, suddenly defines don't work anymore "not defined" |