Working Menu, additions to be made

Dependencies:   mbed

Committer:
25574069
Date:
Tue Dec 07 03:04:35 2021 +0000
Revision:
0:d4d7e882c87d
Child:
1:a87075699085
New save after corruption. Rebuilt from ground up. Working LCD/Joystick, and adjustable backlight via potentiometer.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
25574069 0:d4d7e882c87d 1 #include "mbed.h"
25574069 0:d4d7e882c87d 2 #include "N5110.h"
25574069 0:d4d7e882c87d 3 #include "Joystick.h"
25574069 0:d4d7e882c87d 4
25574069 0:d4d7e882c87d 5 AnalogIn pot(PTB2);
25574069 0:d4d7e882c87d 6
25574069 0:d4d7e882c87d 7
25574069 0:d4d7e882c87d 8 // rows,cols
25574069 0:d4d7e882c87d 9 int sprite[8][5] = {
25574069 0:d4d7e882c87d 10 { 0,0,1,0,0 },
25574069 0:d4d7e882c87d 11 { 0,1,1,1,0 },
25574069 0:d4d7e882c87d 12 { 0,0,1,0,0 },
25574069 0:d4d7e882c87d 13 { 0,1,1,1,0 },
25574069 0:d4d7e882c87d 14 { 1,1,1,1,1 },
25574069 0:d4d7e882c87d 15 { 1,1,1,1,1 },
25574069 0:d4d7e882c87d 16 { 1,1,0,1,1 },
25574069 0:d4d7e882c87d 17 { 1,1,0,1,1 },
25574069 0:d4d7e882c87d 18 };
25574069 0:d4d7e882c87d 19
25574069 0:d4d7e882c87d 20 //Objects
25574069 0:d4d7e882c87d 21 Ticker bl_ticker;
25574069 0:d4d7e882c87d 22
25574069 0:d4d7e882c87d 23 // flag - must be volatile as changes within ISR
25574069 0:d4d7e882c87d 24 // g_ prefix makes it easier to distinguish it as global
25574069 0:d4d7e882c87d 25 volatile int g_bl_timer_flag;
25574069 0:d4d7e882c87d 26
25574069 0:d4d7e882c87d 27 // function prototypes
25574069 0:d4d7e882c87d 28 void bl_timer_isr();
25574069 0:d4d7e882c87d 29
25574069 0:d4d7e882c87d 30 //data
25574069 0:d4d7e882c87d 31 float bright;
25574069 0:d4d7e882c87d 32
25574069 0:d4d7e882c87d 33 //Pinouts
25574069 0:d4d7e882c87d 34 // VCC,SCE,RST,D/C,MOSI,SCLK,LED
25574069 0:d4d7e882c87d 35 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3
25574069 0:d4d7e882c87d 36 // y x button
25574069 0:d4d7e882c87d 37 Joystick joystick(PTB10,PTB11,PTC16);
25574069 0:d4d7e882c87d 38
25574069 0:d4d7e882c87d 39
25574069 0:d4d7e882c87d 40 int main() {
25574069 0:d4d7e882c87d 41
25574069 0:d4d7e882c87d 42 lcd.init();
25574069 0:d4d7e882c87d 43 lcd.setContrast(0.4);
25574069 0:d4d7e882c87d 44
25574069 0:d4d7e882c87d 45 //Set up ticker (time in seconds)
25574069 0:d4d7e882c87d 46 bl_ticker.attach(&bl_timer_isr,0.01);
25574069 0:d4d7e882c87d 47
25574069 0:d4d7e882c87d 48 while (1){
25574069 0:d4d7e882c87d 49 //lcd.setBrightness(pot > 0.2f) ? 0.2 : 0;
25574069 0:d4d7e882c87d 50 //lcd.setBrightness(pot > 0.4f) ? 0.4 : 0.21;
25574069 0:d4d7e882c87d 51 // lcd.setBrightness(pot > 0.6f) ? 0.6 : 0.41;
25574069 0:d4d7e882c87d 52 //lcd.setBrightness(pot > 0.8f) ? 0.8 : 0.61;
25574069 0:d4d7e882c87d 53
25574069 0:d4d7e882c87d 54
25574069 0:d4d7e882c87d 55 if(pot > 0.1f) {
25574069 0:d4d7e882c87d 56 bright = 0.1;
25574069 0:d4d7e882c87d 57 } if(pot > 0.2f) {
25574069 0:d4d7e882c87d 58 bright = 0.2;
25574069 0:d4d7e882c87d 59 } if (pot > 0.3f) {
25574069 0:d4d7e882c87d 60 bright = 0.3;
25574069 0:d4d7e882c87d 61 } if (pot > 0.4f) {
25574069 0:d4d7e882c87d 62 bright = 0.4;
25574069 0:d4d7e882c87d 63 } if (pot > 0.5f) {
25574069 0:d4d7e882c87d 64 bright = 0.5;
25574069 0:d4d7e882c87d 65 } if(pot > 0.6f) {
25574069 0:d4d7e882c87d 66 bright = 0.6;
25574069 0:d4d7e882c87d 67 } if(pot > 0.7f) {
25574069 0:d4d7e882c87d 68 bright = 0.7;
25574069 0:d4d7e882c87d 69 } if (pot > 0.8f) {
25574069 0:d4d7e882c87d 70 bright = 0.8;
25574069 0:d4d7e882c87d 71 } if (pot > 0.9f) {
25574069 0:d4d7e882c87d 72 bright = 0.9;
25574069 0:d4d7e882c87d 73 } if (pot > 1.0f) {
25574069 0:d4d7e882c87d 74 bright = 1.0;
25574069 0:d4d7e882c87d 75 }
25574069 0:d4d7e882c87d 76
25574069 0:d4d7e882c87d 77 // check if flag is set i.e. interrupt has occured:
25574069 0:d4d7e882c87d 78 //For bl check timer
25574069 0:d4d7e882c87d 79 if (g_bl_timer_flag) {
25574069 0:d4d7e882c87d 80 g_bl_timer_flag = 0; //if it has, clear the flag
25574069 0:d4d7e882c87d 81
25574069 0:d4d7e882c87d 82 lcd.setBrightness(bright);
25574069 0:d4d7e882c87d 83 }
25574069 0:d4d7e882c87d 84
25574069 0:d4d7e882c87d 85 }
25574069 0:d4d7e882c87d 86 }
25574069 0:d4d7e882c87d 87
25574069 0:d4d7e882c87d 88 // time-triggered interrupt for red
25574069 0:d4d7e882c87d 89 void bl_timer_isr()
25574069 0:d4d7e882c87d 90 {
25574069 0:d4d7e882c87d 91 g_bl_timer_flag = 1; // set flag in ISR
25574069 0:d4d7e882c87d 92 }
25574069 0:d4d7e882c87d 93