Moritz Mahler
/
mbed_L3_Timer-moritz
hui
Fork of mbed_L3_Timer by
main.cpp@1:a02777ef7e5c, 2014-12-06 (annotated)
- Committer:
- moritzmahler
- Date:
- Sat Dec 06 14:46:14 2014 +0000
- Revision:
- 1:a02777ef7e5c
- Parent:
- 0:8a1dbfbe5c66
some major problems . Don't know why.;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
addyi | 0:8a1dbfbe5c66 | 1 | /************************************************************************** |
addyi | 0:8a1dbfbe5c66 | 2 | * Name: Stoppuhr |
addyi | 0:8a1dbfbe5c66 | 3 | * Date : |
addyi | 0:8a1dbfbe5c66 | 4 | * Author: |
addyi | 0:8a1dbfbe5c66 | 5 | * Revision List: |
addyi | 0:8a1dbfbe5c66 | 6 | -------------------------------------------------------------------------- |
addyi | 0:8a1dbfbe5c66 | 7 | Date | Author | Change |
addyi | 0:8a1dbfbe5c66 | 8 | -------------------------------------------------------------------------- |
addyi | 0:8a1dbfbe5c66 | 9 | | | |
addyi | 0:8a1dbfbe5c66 | 10 | -------------------------------------------------------------------------- |
addyi | 0:8a1dbfbe5c66 | 11 | **************************************************************************/ |
addyi | 0:8a1dbfbe5c66 | 12 | #include "mbed.h" |
addyi | 0:8a1dbfbe5c66 | 13 | #include "cdef.h" |
addyi | 0:8a1dbfbe5c66 | 14 | #include "TextLCD.h" |
addyi | 0:8a1dbfbe5c66 | 15 | |
addyi | 0:8a1dbfbe5c66 | 16 | |
addyi | 0:8a1dbfbe5c66 | 17 | TextLCD stLcd(p26, p25, p24, p23, p22, p20, p19, TextLCD::LCD20x4); // rs, e, d4-d7 |
addyi | 0:8a1dbfbe5c66 | 18 | |
addyi | 0:8a1dbfbe5c66 | 19 | DigitalOut abLed[] = { /* Ausgabe-LEDs */ |
addyi | 0:8a1dbfbe5c66 | 20 | (LED1), (LED2),(LED3), (LED4) |
addyi | 0:8a1dbfbe5c66 | 21 | }; |
addyi | 0:8a1dbfbe5c66 | 22 | |
addyi | 0:8a1dbfbe5c66 | 23 | DigitalIn bBtn1(p8); |
addyi | 0:8a1dbfbe5c66 | 24 | DigitalIn bBtn2(p14); |
addyi | 0:8a1dbfbe5c66 | 25 | |
addyi | 0:8a1dbfbe5c66 | 26 | int8 i=5; |
addyi | 0:8a1dbfbe5c66 | 27 | |
addyi | 0:8a1dbfbe5c66 | 28 | int16 bTastTimerLi=0; |
addyi | 0:8a1dbfbe5c66 | 29 | |
addyi | 0:8a1dbfbe5c66 | 30 | #define nTastLongLi 100 |
addyi | 0:8a1dbfbe5c66 | 31 | #define nTastShortLi 5 |
addyi | 0:8a1dbfbe5c66 | 32 | |
addyi | 0:8a1dbfbe5c66 | 33 | char acZ1t[]="Zeit 1 [sec.] ---.-"; |
addyi | 0:8a1dbfbe5c66 | 34 | char acZ2t[]="Zeit 2 [sec.] ---.-"; |
addyi | 0:8a1dbfbe5c66 | 35 | char acZ3t[]="Zeit 3 [sec.] ---.-"; |
addyi | 0:8a1dbfbe5c66 | 36 | char acZ4t[]="Final [sec.] ---.-"; |
addyi | 0:8a1dbfbe5c66 | 37 | |
addyi | 0:8a1dbfbe5c66 | 38 | char acZ1h[]="Dusche1Dusche Dusche"; |
addyi | 0:8a1dbfbe5c66 | 39 | char acZ2h[]="Dusche2Dusche Dusche"; |
addyi | 0:8a1dbfbe5c66 | 40 | char acZ3h[]="Dusche3Dusche Dusche"; |
addyi | 0:8a1dbfbe5c66 | 41 | char acZ4h[]="Dusche4Dusche Dusche"; |
addyi | 0:8a1dbfbe5c66 | 42 | |
addyi | 0:8a1dbfbe5c66 | 43 | char acDisp[4][20]; |
addyi | 0:8a1dbfbe5c66 | 44 | |
addyi | 0:8a1dbfbe5c66 | 45 | int8 count=0; |
addyi | 0:8a1dbfbe5c66 | 46 | |
moritzmahler | 1:a02777ef7e5c | 47 | volatile char bStandby = 0; |
addyi | 0:8a1dbfbe5c66 | 48 | |
addyi | 0:8a1dbfbe5c66 | 49 | Ticker stSysTick; |
addyi | 0:8a1dbfbe5c66 | 50 | |
moritzmahler | 1:a02777ef7e5c | 51 | void vTimer( void ){ |
moritzmahler | 1:a02777ef7e5c | 52 | abLed[1] = 1; |
moritzmahler | 1:a02777ef7e5c | 53 | bStandby = 1; |
moritzmahler | 1:a02777ef7e5c | 54 | } |
addyi | 0:8a1dbfbe5c66 | 55 | |
addyi | 0:8a1dbfbe5c66 | 56 | |
addyi | 0:8a1dbfbe5c66 | 57 | /* Funktion "Taste 1 gedrückt" */ |
addyi | 0:8a1dbfbe5c66 | 58 | void vBtn1Short( void ) |
addyi | 0:8a1dbfbe5c66 | 59 | { |
addyi | 0:8a1dbfbe5c66 | 60 | |
addyi | 0:8a1dbfbe5c66 | 61 | } |
addyi | 0:8a1dbfbe5c66 | 62 | |
addyi | 0:8a1dbfbe5c66 | 63 | /* Funktion "Taste 1 lange gedrückt" */ |
addyi | 0:8a1dbfbe5c66 | 64 | void vBtn1Long( void ) |
addyi | 0:8a1dbfbe5c66 | 65 | { |
addyi | 0:8a1dbfbe5c66 | 66 | |
addyi | 0:8a1dbfbe5c66 | 67 | } |
addyi | 0:8a1dbfbe5c66 | 68 | |
addyi | 0:8a1dbfbe5c66 | 69 | /* Funktion "Taste 1 losgelassen" */ |
addyi | 0:8a1dbfbe5c66 | 70 | void vBtn1Free( void ) |
addyi | 0:8a1dbfbe5c66 | 71 | { |
addyi | 0:8a1dbfbe5c66 | 72 | |
addyi | 0:8a1dbfbe5c66 | 73 | } |
addyi | 0:8a1dbfbe5c66 | 74 | |
addyi | 0:8a1dbfbe5c66 | 75 | void vDispReset(void) |
addyi | 0:8a1dbfbe5c66 | 76 | { |
addyi | 0:8a1dbfbe5c66 | 77 | for(int y=0; y<sizeof(acZ1t); y++) { |
addyi | 0:8a1dbfbe5c66 | 78 | acDisp[0][y]=acZ1t[y]; |
addyi | 0:8a1dbfbe5c66 | 79 | acDisp[1][y]=acZ2t[y]; |
addyi | 0:8a1dbfbe5c66 | 80 | acDisp[2][y]=acZ3t[y]; |
addyi | 0:8a1dbfbe5c66 | 81 | acDisp[3][y]=acZ4t[y]; |
addyi | 0:8a1dbfbe5c66 | 82 | } |
addyi | 0:8a1dbfbe5c66 | 83 | } |
addyi | 0:8a1dbfbe5c66 | 84 | |
addyi | 0:8a1dbfbe5c66 | 85 | |
addyi | 0:8a1dbfbe5c66 | 86 | /******************************************* |
addyi | 0:8a1dbfbe5c66 | 87 | * APP1 - Taste 1 abfragen |
addyi | 0:8a1dbfbe5c66 | 88 | *******************************************/ |
addyi | 0:8a1dbfbe5c66 | 89 | void vTaste1( void ) |
addyi | 0:8a1dbfbe5c66 | 90 | { |
addyi | 0:8a1dbfbe5c66 | 91 | if(bBtn1 == 0) { |
addyi | 0:8a1dbfbe5c66 | 92 | if(bTastTimerLi < (nTastLongLi+1)) { |
addyi | 0:8a1dbfbe5c66 | 93 | if(bTastTimerLi == nTastShortLi) { |
addyi | 0:8a1dbfbe5c66 | 94 | vBtn1Short(); |
addyi | 0:8a1dbfbe5c66 | 95 | } |
addyi | 0:8a1dbfbe5c66 | 96 | if(bTastTimerLi == nTastLongLi) { |
addyi | 0:8a1dbfbe5c66 | 97 | vBtn1Long(); |
addyi | 0:8a1dbfbe5c66 | 98 | } |
addyi | 0:8a1dbfbe5c66 | 99 | bTastTimerLi++; |
addyi | 0:8a1dbfbe5c66 | 100 | } |
addyi | 0:8a1dbfbe5c66 | 101 | } else { |
addyi | 0:8a1dbfbe5c66 | 102 | if(bTastTimerLi >= nTastLongLi) { |
addyi | 0:8a1dbfbe5c66 | 103 | vBtn1Free(); |
addyi | 0:8a1dbfbe5c66 | 104 | } |
addyi | 0:8a1dbfbe5c66 | 105 | bTastTimerLi = 0; |
addyi | 0:8a1dbfbe5c66 | 106 | } |
addyi | 0:8a1dbfbe5c66 | 107 | } |
addyi | 0:8a1dbfbe5c66 | 108 | |
addyi | 0:8a1dbfbe5c66 | 109 | /******************************************* |
addyi | 0:8a1dbfbe5c66 | 110 | * APP2 - Taste 2 abfragen |
addyi | 0:8a1dbfbe5c66 | 111 | *******************************************/ |
addyi | 0:8a1dbfbe5c66 | 112 | void vTaste2( void ) |
addyi | 0:8a1dbfbe5c66 | 113 | { |
addyi | 0:8a1dbfbe5c66 | 114 | |
moritzmahler | 1:a02777ef7e5c | 115 | if(count==nTastLongLi) { |
moritzmahler | 1:a02777ef7e5c | 116 | abLed[0]=!abLed[0]; |
moritzmahler | 1:a02777ef7e5c | 117 | count=0; |
moritzmahler | 1:a02777ef7e5c | 118 | } else { |
moritzmahler | 1:a02777ef7e5c | 119 | count++; |
moritzmahler | 1:a02777ef7e5c | 120 | } |
addyi | 0:8a1dbfbe5c66 | 121 | |
addyi | 0:8a1dbfbe5c66 | 122 | |
addyi | 0:8a1dbfbe5c66 | 123 | } |
addyi | 0:8a1dbfbe5c66 | 124 | |
addyi | 0:8a1dbfbe5c66 | 125 | |
addyi | 0:8a1dbfbe5c66 | 126 | /******************************************* |
addyi | 0:8a1dbfbe5c66 | 127 | * APP3 - LCD-Ausgabe |
addyi | 0:8a1dbfbe5c66 | 128 | *******************************************/ |
addyi | 0:8a1dbfbe5c66 | 129 | void vLcdOut( void ) |
addyi | 0:8a1dbfbe5c66 | 130 | { |
addyi | 0:8a1dbfbe5c66 | 131 | for(int x=0; x<sizeof(acDisp); x++) { |
addyi | 0:8a1dbfbe5c66 | 132 | for(int y=0; y<sizeof(acDisp[x]); y++) { |
addyi | 0:8a1dbfbe5c66 | 133 | stLcd.locate(y,x); |
addyi | 0:8a1dbfbe5c66 | 134 | stLcd.putc(acDisp[x][y]); |
addyi | 0:8a1dbfbe5c66 | 135 | } |
addyi | 0:8a1dbfbe5c66 | 136 | } |
addyi | 0:8a1dbfbe5c66 | 137 | } |
addyi | 0:8a1dbfbe5c66 | 138 | |
addyi | 0:8a1dbfbe5c66 | 139 | |
addyi | 0:8a1dbfbe5c66 | 140 | /* Hauptprogramm */ |
addyi | 0:8a1dbfbe5c66 | 141 | int main() |
addyi | 0:8a1dbfbe5c66 | 142 | { |
moritzmahler | 1:a02777ef7e5c | 143 | stSysTick.attach(&vTimer, 0.02); |
moritzmahler | 1:a02777ef7e5c | 144 | bStandby=0; |
addyi | 0:8a1dbfbe5c66 | 145 | vDispReset(); |
moritzmahler | 1:a02777ef7e5c | 146 | |
addyi | 0:8a1dbfbe5c66 | 147 | |
addyi | 0:8a1dbfbe5c66 | 148 | while(1) { |
moritzmahler | 1:a02777ef7e5c | 149 | |
addyi | 0:8a1dbfbe5c66 | 150 | // wait until bStandby !=0 |
moritzmahler | 1:a02777ef7e5c | 151 | while(bStandby == 0){ |
moritzmahler | 1:a02777ef7e5c | 152 | abLed[0] = 1; |
addyi | 0:8a1dbfbe5c66 | 153 | } |
addyi | 0:8a1dbfbe5c66 | 154 | bStandby = 0; |
moritzmahler | 1:a02777ef7e5c | 155 | abLed[2] = 1; |
moritzmahler | 1:a02777ef7e5c | 156 | // vTaste1(); |
moritzmahler | 1:a02777ef7e5c | 157 | // vTaste2(); |
addyi | 0:8a1dbfbe5c66 | 158 | i--; |
addyi | 0:8a1dbfbe5c66 | 159 | if(i == 0) { |
addyi | 0:8a1dbfbe5c66 | 160 | i = 5; |
moritzmahler | 1:a02777ef7e5c | 161 | |
moritzmahler | 1:a02777ef7e5c | 162 | // vLcdOut(); |
moritzmahler | 1:a02777ef7e5c | 163 | |
addyi | 0:8a1dbfbe5c66 | 164 | } |
addyi | 0:8a1dbfbe5c66 | 165 | } |
addyi | 0:8a1dbfbe5c66 | 166 | } |
addyi | 0:8a1dbfbe5c66 | 167 |