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.
main.cpp@0:1ca5dfac90fc, 2021-03-08 (annotated)
- Committer:
- jack1930
- Date:
- Mon Mar 08 13:59:22 2021 +0000
- Revision:
- 0:1ca5dfac90fc
Multifunktionshield LED-Anzeige Analogwert
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jack1930 | 0:1ca5dfac90fc | 1 | /* mbed Microcontroller Library |
| jack1930 | 0:1ca5dfac90fc | 2 | * Copyright (c) 2019 ARM Limited |
| jack1930 | 0:1ca5dfac90fc | 3 | * SPDX-License-Identifier: Apache-2.0 |
| jack1930 | 0:1ca5dfac90fc | 4 | */ |
| jack1930 | 0:1ca5dfac90fc | 5 | |
| jack1930 | 0:1ca5dfac90fc | 6 | #include "mbed.h" |
| jack1930 | 0:1ca5dfac90fc | 7 | #include "platform/mbed_thread.h" |
| jack1930 | 0:1ca5dfac90fc | 8 | #include "MFS.h" |
| jack1930 | 0:1ca5dfac90fc | 9 | |
| jack1930 | 0:1ca5dfac90fc | 10 | // Blinking rate in milliseconds |
| jack1930 | 0:1ca5dfac90fc | 11 | #define BLINKING_RATE_MS 500 |
| jack1930 | 0:1ca5dfac90fc | 12 | |
| jack1930 | 0:1ca5dfac90fc | 13 | MFS mfs; |
| jack1930 | 0:1ca5dfac90fc | 14 | Ticker meinTicker; |
| jack1930 | 0:1ca5dfac90fc | 15 | Ticker MotorTicker; |
| jack1930 | 0:1ca5dfac90fc | 16 | int analog; |
| jack1930 | 0:1ca5dfac90fc | 17 | char seg7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; |
| jack1930 | 0:1ca5dfac90fc | 18 | |
| jack1930 | 0:1ca5dfac90fc | 19 | |
| jack1930 | 0:1ca5dfac90fc | 20 | DigitalOut summer(PB_3); |
| jack1930 | 0:1ca5dfac90fc | 21 | |
| jack1930 | 0:1ca5dfac90fc | 22 | char schritt[4]={0b0011,0b0110,0b1100,0b1001}; |
| jack1930 | 0:1ca5dfac90fc | 23 | |
| jack1930 | 0:1ca5dfac90fc | 24 | PortOut Motor(PortC,0xF); |
| jack1930 | 0:1ca5dfac90fc | 25 | |
| jack1930 | 0:1ca5dfac90fc | 26 | int digit=0x10; |
| jack1930 | 0:1ca5dfac90fc | 27 | int pos=0; |
| jack1930 | 0:1ca5dfac90fc | 28 | |
| jack1930 | 0:1ca5dfac90fc | 29 | void drehen() |
| jack1930 | 0:1ca5dfac90fc | 30 | { |
| jack1930 | 0:1ca5dfac90fc | 31 | Motor=schritt[pos]; |
| jack1930 | 0:1ca5dfac90fc | 32 | pos=(pos+1)%4; |
| jack1930 | 0:1ca5dfac90fc | 33 | } |
| jack1930 | 0:1ca5dfac90fc | 34 | |
| jack1930 | 0:1ca5dfac90fc | 35 | |
| jack1930 | 0:1ca5dfac90fc | 36 | void anzeigen() |
| jack1930 | 0:1ca5dfac90fc | 37 | { |
| jack1930 | 0:1ca5dfac90fc | 38 | int ausgabe=analog; |
| jack1930 | 0:1ca5dfac90fc | 39 | |
| jack1930 | 0:1ca5dfac90fc | 40 | switch(digit) |
| jack1930 | 0:1ca5dfac90fc | 41 | { |
| jack1930 | 0:1ca5dfac90fc | 42 | case 0x10: mfs=(digit<<8)+seg7[ausgabe%10]; |
| jack1930 | 0:1ca5dfac90fc | 43 | digit=0x20; |
| jack1930 | 0:1ca5dfac90fc | 44 | break; |
| jack1930 | 0:1ca5dfac90fc | 45 | case 0x20: mfs=(digit<<8)+seg7[(ausgabe/10)%10]; |
| jack1930 | 0:1ca5dfac90fc | 46 | digit=0x40; |
| jack1930 | 0:1ca5dfac90fc | 47 | break; |
| jack1930 | 0:1ca5dfac90fc | 48 | case 0x40: mfs=(digit<<8)+seg7[(ausgabe/100)%10]; |
| jack1930 | 0:1ca5dfac90fc | 49 | digit=0x80; |
| jack1930 | 0:1ca5dfac90fc | 50 | break; |
| jack1930 | 0:1ca5dfac90fc | 51 | case 0x80: mfs=(digit<<8)+seg7[(ausgabe/1000)%10]; |
| jack1930 | 0:1ca5dfac90fc | 52 | digit=0x10; |
| jack1930 | 0:1ca5dfac90fc | 53 | break; |
| jack1930 | 0:1ca5dfac90fc | 54 | |
| jack1930 | 0:1ca5dfac90fc | 55 | } |
| jack1930 | 0:1ca5dfac90fc | 56 | //mfs=0x80FC; |
| jack1930 | 0:1ca5dfac90fc | 57 | } |
| jack1930 | 0:1ca5dfac90fc | 58 | |
| jack1930 | 0:1ca5dfac90fc | 59 | int main() |
| jack1930 | 0:1ca5dfac90fc | 60 | { |
| jack1930 | 0:1ca5dfac90fc | 61 | // Initialise the digital pin LED1 as an output |
| jack1930 | 0:1ca5dfac90fc | 62 | DigitalOut led(LED1); |
| jack1930 | 0:1ca5dfac90fc | 63 | AnalogIn Poti(PA_0); |
| jack1930 | 0:1ca5dfac90fc | 64 | meinTicker.attach_us(&anzeigen,1000); |
| jack1930 | 0:1ca5dfac90fc | 65 | MotorTicker.attach_us(&drehen,10000); |
| jack1930 | 0:1ca5dfac90fc | 66 | summer=1; |
| jack1930 | 0:1ca5dfac90fc | 67 | while (true) { |
| jack1930 | 0:1ca5dfac90fc | 68 | led = !led; |
| jack1930 | 0:1ca5dfac90fc | 69 | thread_sleep_for(BLINKING_RATE_MS); |
| jack1930 | 0:1ca5dfac90fc | 70 | analog=Poti*9999; |
| jack1930 | 0:1ca5dfac90fc | 71 | if (analog<1000) summer=0; |
| jack1930 | 0:1ca5dfac90fc | 72 | else summer=1; |
| jack1930 | 0:1ca5dfac90fc | 73 | MotorTicker.attach_us(&drehen,analog*2); |
| jack1930 | 0:1ca5dfac90fc | 74 | } |
| jack1930 | 0:1ca5dfac90fc | 75 | } |