![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Working Menu, additions to be made
Dependencies: mbed
main.cpp@0:d4d7e882c87d, 2021-12-07 (annotated)
- 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?
User | Revision | Line number | New 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 |