Homework

Dependencies:   SLCD mbed

Fork of blink_kl46z_button_LCD by Stanley Cohen

Committer:
kennylujan42
Date:
Mon Sep 12 05:28:43 2016 +0000
Revision:
4:90ea2e6fdad8
Parent:
3:fc189dd7ac64
KLUJA_SSD_341_HW_4.4.2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
scohennm 0:e23fffd4b9a7 1 #include "mbed.h"
scohennm 2:b49e5adf84df 2 #include "SLCD.h"
scohennm 2:b49e5adf84df 3
scohennm 0:e23fffd4b9a7 4 #define LEDON false
scohennm 0:e23fffd4b9a7 5 #define LEDOFF true
kennylujan42 4:90ea2e6fdad8 6 #define BUTDOWN false
kennylujan42 4:90ea2e6fdad8 7 #define BUTUP true
scohennm 1:2688f68df85d 8 #define NUMBUTS 2
scohennm 3:fc189dd7ac64 9 #define LBUT PTC12 // port addresses for buttons
scohennm 1:2688f68df85d 10 #define RBUT PTC3
kennylujan42 4:90ea2e6fdad8 11 #define BLINKTIME 0.05 // in seconds
kennylujan42 4:90ea2e6fdad8 12 #define BUTTONTIME 0.02
scohennm 2:b49e5adf84df 13 #define LCDCHARLEN 10
scohennm 2:b49e5adf84df 14 #define NUMMESS 2
scohennm 2:b49e5adf84df 15 #define LRED "RED"
kennylujan42 4:90ea2e6fdad8 16 #define LGREEN "GREEN"
scohennm 2:b49e5adf84df 17 #define PRED "RED\r\n"
scohennm 2:b49e5adf84df 18 #define PGREEN "GREEN\r\n"
kennylujan42 4:90ea2e6fdad8 19 #define REDMESS "RED LED is ON\r\n"
kennylujan42 4:90ea2e6fdad8 20 #define GREENMESS "GREEN LED is ON\r\n"p
scohennm 3:fc189dd7ac64 21 #define PROGNAME "blink_kl46z_buttton LCD v2\r\n"
scohennm 0:e23fffd4b9a7 22
scohennm 0:e23fffd4b9a7 23 // slightly more interesting blinky 140814 sc
kennylujan42 4:90ea2e6fdad8 24 SLCD slcd; //define LCD display as a variaable
kennylujan42 4:90ea2e6fdad8 25
kennylujan42 4:90ea2e6fdad8 26
scohennm 0:e23fffd4b9a7 27
kennylujan42 4:90ea2e6fdad8 28 int ledState = LEDON;
kennylujan42 4:90ea2e6fdad8 29 int buttonStates[NUMBUTS] = {BUTDOWN, BUTUP};
kennylujan42 4:90ea2e6fdad8 30 DigitalIn buttons[NUMBUTS] = {RBUT, LBUT};
kennylujan42 4:90ea2e6fdad8 31 DigitalOut LEDs[NUMBUTS] = {LED_GREEN, LED_RED};
kennylujan42 4:90ea2e6fdad8 32
kennylujan42 4:90ea2e6fdad8 33 //needed port
kennylujan42 4:90ea2e6fdad8 34 Serial pc(USBTX, USBRX);
kennylujan42 4:90ea2e6fdad8 35
kennylujan42 4:90ea2e6fdad8 36 //
scohennm 3:fc189dd7ac64 37 // Timer to elliminate wait() function
scohennm 3:fc189dd7ac64 38 Timer LEDTimer; // for blinking LEDs
scohennm 3:fc189dd7ac64 39 Timer ButtonTimer; // for reading button states
scohennm 1:2688f68df85d 40
kennylujan42 4:90ea2e6fdad8 41 void LCDMess(char *lMess){
kennylujan42 4:90ea2e6fdad8 42 slcd.Home();
kennylujan42 4:90ea2e6fdad8 43 slcd.clear();
kennylujan42 4:90ea2e6fdad8 44 slcd.printf(lMess);
kennylujan42 4:90ea2e6fdad8 45 }
scohennm 3:fc189dd7ac64 46 void allLEDsOff(){
scohennm 3:fc189dd7ac64 47 int i;
scohennm 3:fc189dd7ac64 48 for (i=0; i<NUMBUTS; i++){
scohennm 3:fc189dd7ac64 49 LEDs[i] = LEDOFF;
scohennm 3:fc189dd7ac64 50 }
scohennm 3:fc189dd7ac64 51 }
kennylujan42 4:90ea2e6fdad8 52 int main(){
kennylujan42 4:90ea2e6fdad8 53
scohennm 1:2688f68df85d 54 int i;
scohennm 1:2688f68df85d 55 int currentLED = 0;
kennylujan42 4:90ea2e6fdad8 56 char rMess[NUMMESS][LCDCHARLEN]={LGREEN, LRED};
kennylujan42 4:90ea2e6fdad8 57 char pMess[NUMMESS][LCDCHARLEN]={PRED,PGREEN};
kennylujan42 4:90ea2e6fdad8 58
scohennm 3:fc189dd7ac64 59
kennylujan42 4:90ea2e6fdad8 60 LEDs[currentLED] = LEDON;
scohennm 2:b49e5adf84df 61 LCDMess(rMess[currentLED]);
kennylujan42 4:90ea2e6fdad8 62
scohennm 0:e23fffd4b9a7 63 while(true) {
scohennm 3:fc189dd7ac64 64 if (ButtonTimer > BUTTONTIME){
scohennm 3:fc189dd7ac64 65 for (i=0; i<NUMBUTS; i++){ // index will be 0 or 1
scohennm 3:fc189dd7ac64 66 if(!buttons[i]) {
scohennm 3:fc189dd7ac64 67 allLEDsOff();
scohennm 3:fc189dd7ac64 68 LCDMess(rMess[i]);
scohennm 3:fc189dd7ac64 69 currentLED = i;
kennylujan42 4:90ea2e6fdad8 70 }
kennylujan42 4:90ea2e6fdad8 71 }
scohennm 1:2688f68df85d 72 }
kennylujan42 4:90ea2e6fdad8 73 while(true){
kennylujan42 4:90ea2e6fdad8 74 for (i=0; i<NUMBUTS; i++){
kennylujan42 4:90ea2e6fdad8 75 LEDs[i] = LEDOFF;
kennylujan42 4:90ea2e6fdad8 76 if(!buttons[i]) {
kennylujan42 4:90ea2e6fdad8 77 LCDMess(rMess[i]);
kennylujan42 4:90ea2e6fdad8 78
kennylujan42 4:90ea2e6fdad8 79 currentLED = i;
kennylujan42 4:90ea2e6fdad8 80 }
kennylujan42 4:90ea2e6fdad8 81 }
kennylujan42 4:90ea2e6fdad8 82 ledState = !ledState;
kennylujan42 4:90ea2e6fdad8 83 LEDs[currentLED] = ledState;
kennylujan42 4:90ea2e6fdad8 84 wait(BLINKTIME);
kennylujan42 4:90ea2e6fdad8 85 }
kennylujan42 4:90ea2e6fdad8 86 }
kennylujan42 4:90ea2e6fdad8 87 }