Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
You are viewing an older revision! See the latest version
Homepage
/media/uploads/majdak79/main.cpp
{/* Aufgabebstellung: Zähler von 0 - 39; Ein Erhöhnen über 39 und ein Vermindern unter 0 ist nicht möglich. a) mit Joystick UP Zählerinhalt um 1 erhöhen b) mit Joystick DOWN Zählerinhalt um 1 vermindern c) mit Joystick LEFT Zählerinhalt um 5 erhöhen d) mit Joystick RIGHT Zählerinhalt um 5 vermindern e) mit Joystick CENTER: - 1x Zählerinhalt = 0 - 2x hintereinander Zählerinhalt = 10 - 3x hintereinander Zählerinhalt = 20 - 4x hintereinander Zählerinhalt = 30 - 5x hintereinander Zählerinhalt = 0 - usw. f) Anzeige: Einerstelle: Binär auf LED1 - LED4 Zehnerstelle mit RGB-LED: 0 = dunkel; 1 = grün; 2 = rot; 30 = blau
Empfehlung: Verwendung der Class BusOut für die Anzeige
- /
- include "mbed.h"
- define MAX 39
- define MIN 0
- define ADDIT_VAL 5
- define SUBTR_VAL 5 BusOut boLeds(LED1, LED2, LED3, LED4); BusOut boRGBled(p23, p24, p25); p23=RED, p24=GREEN, p25=BLUE; inverted logic: 011=red(6), 101=green(5), 110=blue(3), 111=dark=off(7); BusIn biJoyStk(p15, p12, p13, p16, p14); p15=Up, p12=Down, p13=Left, p16=Right, p14=Center
void setRGBleds(int8_t cnt) { if (cnt < 10) boRGBled = 7; else if (cnt < 20) boRGBled = 5; else if (cnt < 30) boRGBled = 6; else boRGBled = 3; }
int main() { int8_t counter = 0; bool pressedFlag = false;
while(1) {
switch (biJoyStk) {
case 1: Up
if (!pressedFlag) {
if (counter < MAX) {
counter++;
pressedFlag = true;
}
}
break;
case 2: Down
if (!pressedFlag) {
if (counter > MIN) {
counter;
pressedFlag = true;
}
}
break;
case 4:
if (!pressedFlag) {
if (counter <= MAX - ADDIT_VAL) {
counter += ADDIT_VAL;
pressedFlag = true;
}
}
break;
case 8:
if (!pressedFlag) {
if (counter >= MIN + SUBTR_VAL) {
counter -= SUBTR_VAL;
pressedFlag = true;
}
}
break;
case 16:
break;
default: pressedFlag = false;
break;
}
boLeds = counter%10;
setRGBleds(counter);
}
}
}