Working Menu, additions to be made

Dependencies:   mbed

Committer:
jackmcgarley
Date:
Fri Jan 21 09:37:37 2022 +0000
Revision:
3:d1e1de4a712e
Parent:
2:d3676e11e2c6
Child:
4:143487eef742
Example collection from E.Nurellari to help with final project

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 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 }