MPro _ 3 Mann / Mbed 2 deprecated mbed_LCD

Dependencies:   mbed

Committer:
Sneid
Date:
Thu Jun 26 08:20:29 2014 +0000
Revision:
0:d494e07c7c0e
mbed_LCD

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sneid 0:d494e07c7c0e 1 /**************************************************************************
Sneid 0:d494e07c7c0e 2 * Name: Stoppuhr
Sneid 0:d494e07c7c0e 3 * Date : 11.12.2012
Sneid 0:d494e07c7c0e 4 * Author:
Sneid 0:d494e07c7c0e 5 * Revision List:
Sneid 0:d494e07c7c0e 6 --------------------------------------------------------------------------
Sneid 0:d494e07c7c0e 7 Date | Author | Change
Sneid 0:d494e07c7c0e 8 --------------------------------------------------------------------------
Sneid 0:d494e07c7c0e 9 | |
Sneid 0:d494e07c7c0e 10 --------------------------------------------------------------------------
Sneid 0:d494e07c7c0e 11 **************************************************************************/
Sneid 0:d494e07c7c0e 12 #include "mbed.h"
Sneid 0:d494e07c7c0e 13 #include "cdef.h"
Sneid 0:d494e07c7c0e 14 #include "TextLCD.h"
Sneid 0:d494e07c7c0e 15 #include "Timer.h"
Sneid 0:d494e07c7c0e 16 //#define test
Sneid 0:d494e07c7c0e 17
Sneid 0:d494e07c7c0e 18
Sneid 0:d494e07c7c0e 19 DigitalIn bLinks(p8);
Sneid 0:d494e07c7c0e 20 InterruptIn bBtnLinks(p8);
Sneid 0:d494e07c7c0e 21
Sneid 0:d494e07c7c0e 22 Timer timer;
Sneid 0:d494e07c7c0e 23 Timer timerSoLangeGedrueckt;
Sneid 0:d494e07c7c0e 24 Ticker stTick;
Sneid 0:d494e07c7c0e 25 TextLCD stLcd(p26, p25, p24, p23, p22, p20, p19, TextLCD::LCD20x4);
Sneid 0:d494e07c7c0e 26
Sneid 0:d494e07c7c0e 27 /* Konstantenvereinbarungen */
Sneid 0:d494e07c7c0e 28 #define nTastShort 2 /* Entprellzyklen */
Sneid 0:d494e07c7c0e 29 #define nTastLong 800 /* 0,5 Sekunden gedrückt halten */
Sneid 0:d494e07c7c0e 30
Sneid 0:d494e07c7c0e 31 enum { enOff, /* Uhr ist aus */
Sneid 0:d494e07c7c0e 32 enRun, /* Zeitläuft */
Sneid 0:d494e07c7c0e 33 enStop /* Zeit steht */
Sneid 0:d494e07c7c0e 34 };
Sneid 0:d494e07c7c0e 35
Sneid 0:d494e07c7c0e 36 int binBtnCheck=0;
Sneid 0:d494e07c7c0e 37
Sneid 0:d494e07c7c0e 38 volatile byte bStandby; /*
Sneid 0:d494e07c7c0e 39 * Description : Warteflag
Sneid 0:d494e07c7c0e 40 */
Sneid 0:d494e07c7c0e 41
Sneid 0:d494e07c7c0e 42 byte bTastTimerLi;/*
Sneid 0:d494e07c7c0e 43 * Description : Entprellzähler Links
Sneid 0:d494e07c7c0e 44 */
Sneid 0:d494e07c7c0e 45
Sneid 0:d494e07c7c0e 46 byte bTastState;/*
Sneid 0:d494e07c7c0e 47 * Description : Zustandsautomat "Taste"
Sneid 0:d494e07c7c0e 48 */
Sneid 0:d494e07c7c0e 49
Sneid 0:d494e07c7c0e 50 byte bLcdState; /*
Sneid 0:d494e07c7c0e 51 * Description :
Sneid 0:d494e07c7c0e 52 */
Sneid 0:d494e07c7c0e 53
Sneid 0:d494e07c7c0e 54 float fStoppUhr; /*
Sneid 0:d494e07c7c0e 55 * Description :
Sneid 0:d494e07c7c0e 56 */
Sneid 0:d494e07c7c0e 57
Sneid 0:d494e07c7c0e 58 void vTimerTick( void )
Sneid 0:d494e07c7c0e 59 {
Sneid 0:d494e07c7c0e 60 bStandby = 1;
Sneid 0:d494e07c7c0e 61 }
Sneid 0:d494e07c7c0e 62
Sneid 0:d494e07c7c0e 63
Sneid 0:d494e07c7c0e 64
Sneid 0:d494e07c7c0e 65 /* Funktion "Taste Links gedrückt" */
Sneid 0:d494e07c7c0e 66 void vButtonLeShort( void )
Sneid 0:d494e07c7c0e 67 {
Sneid 0:d494e07c7c0e 68 }
Sneid 0:d494e07c7c0e 69
Sneid 0:d494e07c7c0e 70 /* Funktion "Taste Links lange gedrückt" */
Sneid 0:d494e07c7c0e 71 void vButtonLeLong( void )
Sneid 0:d494e07c7c0e 72 {
Sneid 0:d494e07c7c0e 73 }
Sneid 0:d494e07c7c0e 74
Sneid 0:d494e07c7c0e 75 /* Funktion "Taste Links losgelassen" */
Sneid 0:d494e07c7c0e 76 void vButtonLeFree( void )
Sneid 0:d494e07c7c0e 77 {
Sneid 0:d494e07c7c0e 78 }
Sneid 0:d494e07c7c0e 79
Sneid 0:d494e07c7c0e 80
Sneid 0:d494e07c7c0e 81 /*******************************************
Sneid 0:d494e07c7c0e 82 * APP1 - Tastenabfrage
Sneid 0:d494e07c7c0e 83 *******************************************/
Sneid 0:d494e07c7c0e 84 void vTasteLi( void )
Sneid 0:d494e07c7c0e 85 {
Sneid 0:d494e07c7c0e 86 }
Sneid 0:d494e07c7c0e 87
Sneid 0:d494e07c7c0e 88 /*******************************************
Sneid 0:d494e07c7c0e 89 * APP2 - LCD-Ausgabe
Sneid 0:d494e07c7c0e 90 *******************************************/
Sneid 0:d494e07c7c0e 91 void vLcdOut( void )
Sneid 0:d494e07c7c0e 92 {
Sneid 0:d494e07c7c0e 93 }
Sneid 0:d494e07c7c0e 94
Sneid 0:d494e07c7c0e 95 void BtnUp()
Sneid 0:d494e07c7c0e 96 {
Sneid 0:d494e07c7c0e 97 binBtnCheck=0;
Sneid 0:d494e07c7c0e 98 timerSoLangeGedrueckt.stop();
Sneid 0:d494e07c7c0e 99 timerSoLangeGedrueckt.reset();
Sneid 0:d494e07c7c0e 100 }
Sneid 0:d494e07c7c0e 101
Sneid 0:d494e07c7c0e 102 void BtnDown()
Sneid 0:d494e07c7c0e 103 {
Sneid 0:d494e07c7c0e 104 timerSoLangeGedrueckt.start();
Sneid 0:d494e07c7c0e 105 }
Sneid 0:d494e07c7c0e 106
Sneid 0:d494e07c7c0e 107 /* Hauptprogramm */
Sneid 0:d494e07c7c0e 108 int main()
Sneid 0:d494e07c7c0e 109 {
Sneid 0:d494e07c7c0e 110 int binOnOff=0; //Switch für an-aus schalten der Stoippuhr
Sneid 0:d494e07c7c0e 111 bBtnLinks.rise(&BtnUp);
Sneid 0:d494e07c7c0e 112 bBtnLinks.fall(&BtnDown);
Sneid 0:d494e07c7c0e 113 byte i = 5;
Sneid 0:d494e07c7c0e 114 bStandby = 0;
Sneid 0:d494e07c7c0e 115 bLcdState = enOff;
Sneid 0:d494e07c7c0e 116 fStoppUhr = 0;
Sneid 0:d494e07c7c0e 117 stTick.attach_us(&vTimerTick, 20000);
Sneid 0:d494e07c7c0e 118
Sneid 0:d494e07c7c0e 119
Sneid 0:d494e07c7c0e 120
Sneid 0:d494e07c7c0e 121 while(1) {
Sneid 0:d494e07c7c0e 122
Sneid 0:d494e07c7c0e 123 if (timerSoLangeGedrueckt.read_ms()>=nTastLong) {
Sneid 0:d494e07c7c0e 124 timer.stop();
Sneid 0:d494e07c7c0e 125 timer.reset();
Sneid 0:d494e07c7c0e 126 }
Sneid 0:d494e07c7c0e 127
Sneid 0:d494e07c7c0e 128 if (!binBtnCheck && !bLinks) { /* Knopf kurz drücken*/
Sneid 0:d494e07c7c0e 129 binBtnCheck=1;
Sneid 0:d494e07c7c0e 130 #if define test
Sneid 0:d494e07c7c0e 131 stLcd.locate(0,0);
Sneid 0:d494e07c7c0e 132 stLcd.printf("Ich bin Stoppuhrr - was los!? ");
Sneid 0:d494e07c7c0e 133 #endif
Sneid 0:d494e07c7c0e 134
Sneid 0:d494e07c7c0e 135
Sneid 0:d494e07c7c0e 136 if (binOnOff)
Sneid 0:d494e07c7c0e 137 timer.stop();
Sneid 0:d494e07c7c0e 138 else
Sneid 0:d494e07c7c0e 139 timer.start();
Sneid 0:d494e07c7c0e 140
Sneid 0:d494e07c7c0e 141 binOnOff=!binOnOff; //umschalten zwichen an und aus
Sneid 0:d494e07c7c0e 142 stLcd.locate(0,1);
Sneid 0:d494e07c7c0e 143 //stLcd.printf("%d. mal",binOnOff, 20);
Sneid 0:d494e07c7c0e 144
Sneid 0:d494e07c7c0e 145 }
Sneid 0:d494e07c7c0e 146
Sneid 0:d494e07c7c0e 147 //-> ausgabe der aktuellen Zeit
Sneid 0:d494e07c7c0e 148 stLcd.locate(0,2);
Sneid 0:d494e07c7c0e 149 stLcd.printf("%.2lfs", timer.read());
Sneid 0:d494e07c7c0e 150 //<-
Sneid 0:d494e07c7c0e 151
Sneid 0:d494e07c7c0e 152 while(bStandby == 0);
Sneid 0:d494e07c7c0e 153 bStandby = 0;
Sneid 0:d494e07c7c0e 154 vTasteLi();
Sneid 0:d494e07c7c0e 155 i--;
Sneid 0:d494e07c7c0e 156 if(i == 0) {
Sneid 0:d494e07c7c0e 157 i = 5;
Sneid 0:d494e07c7c0e 158 vLcdOut();
Sneid 0:d494e07c7c0e 159 }
Sneid 0:d494e07c7c0e 160 }
Sneid 0:d494e07c7c0e 161 }