Working Menu, additions to be made

Dependencies:   mbed

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?

UserRevisionLine numberNew 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"