Jack Hansdampf / Mbed OS MFS_ADC

Dependencies:   MFS_Display_HAL

Committer:
jack1930
Date:
Mon Mar 08 13:59:22 2021 +0000
Revision:
0:1ca5dfac90fc
Multifunktionshield LED-Anzeige Analogwert

Who changed what in which revision?

UserRevisionLine numberNew 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 }