initial commit and publish

Dependencies:   mbed

Committer:
kafka
Date:
Mon Jan 13 18:11:55 2020 +0000
Revision:
5:c7b761205cd6
Parent:
4:a1b882076f41
fehler behoben!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kafka 0:886ff6a91b2c 1 #include "mbed.h"
kafka 5:c7b761205cd6 2 //#define BUTTON1 A1
kafka 5:c7b761205cd6 3 //#define BUTTON1 p14
kafka 4:a1b882076f41 4 BusOut myleds(LED1,LED2,LED3,LED4);
kafka 0:886ff6a91b2c 5 DigitalIn button(BUTTON1);
kafka 0:886ff6a91b2c 6
kafka 0:886ff6a91b2c 7 void nibbleLeds(int value);
kafka 1:dcfefb503be4 8 void printb(uint8_t x);
kafka 2:6a2101a16cef 9 int modifyBit(int x, uint8_t position, bool State);
kafka 3:c1dee77b3e02 10 int lauflicht(bool richtung, int time, int &anz);
kafka 0:886ff6a91b2c 11 const int INIT = 0x03;
kafka 0:886ff6a91b2c 12
kafka 0:886ff6a91b2c 13
kafka 0:886ff6a91b2c 14 int main() {
kafka 0:886ff6a91b2c 15 int anzahl, anz;
kafka 0:886ff6a91b2c 16 uint8_t value = INIT;
kafka 3:c1dee77b3e02 17 anzahl = lauflicht(true, 400, anz = 0);
kafka 0:886ff6a91b2c 18
kafka 0:886ff6a91b2c 19 printf("anzahl = %d\n", anzahl);
kafka 0:886ff6a91b2c 20 nibbleLeds(value);
kafka 1:dcfefb503be4 21 printb(myleds);
kafka 2:6a2101a16cef 22 value = modifyBit(value, 2, 1);
kafka 2:6a2101a16cef 23 printb(myleds);
kafka 2:6a2101a16cef 24 printb(modifyBit(value, 3, 1));
kafka 0:886ff6a91b2c 25 wait(0.1);
kafka 1:dcfefb503be4 26 }
kafka 0:886ff6a91b2c 27
kafka 1:dcfefb503be4 28 void nibbleLeds(int value) {
kafka 4:a1b882076f41 29 myleds = value % 16;
kafka 0:886ff6a91b2c 30 }
kafka 1:dcfefb503be4 31
kafka 1:dcfefb503be4 32 void printb(uint8_t x){
kafka 4:a1b882076f41 33 for(int i = sizeof(x) << 3; i; i--)
kafka 1:dcfefb503be4 34 putchar('0' + ((x >> (i - 1)) & 1));
kafka 1:dcfefb503be4 35 printf("\n");
kafka 2:6a2101a16cef 36 }
kafka 2:6a2101a16cef 37
kafka 2:6a2101a16cef 38 int modifyBit(int x, uint8_t position, bool State){
kafka 2:6a2101a16cef 39 int mask = 1 << position;
kafka 2:6a2101a16cef 40 int state = int(State);
kafka 2:6a2101a16cef 41 return (x & ~mask) | ((state << position) & mask);
kafka 2:6a2101a16cef 42 }
kafka 3:c1dee77b3e02 43
kafka 3:c1dee77b3e02 44 int lauflicht(bool richtung, int time, int &anz){
kafka 5:c7b761205cd6 45 int i;
kafka 3:c1dee77b3e02 46 uint8_t lauf = 0x01;
kafka 3:c1dee77b3e02 47
kafka 3:c1dee77b3e02 48 if(!richtung)
kafka 3:c1dee77b3e02 49 lauf = 0x08;
kafka 3:c1dee77b3e02 50 while(1) {
kafka 3:c1dee77b3e02 51 nibbleLeds(lauf & 0x0f);
kafka 3:c1dee77b3e02 52 if(richtung){
kafka 3:c1dee77b3e02 53 lauf = lauf << 1;
kafka 3:c1dee77b3e02 54 if (lauf > 8)
kafka 5:c7b761205cd6 55 lauf = 0x01;
kafka 3:c1dee77b3e02 56 }
kafka 3:c1dee77b3e02 57 else {
kafka 3:c1dee77b3e02 58 lauf = lauf >> 1;
kafka 5:c7b761205cd6 59 if (lauf == 0)
kafka 3:c1dee77b3e02 60 lauf = 0x08;
kafka 3:c1dee77b3e02 61 }
kafka 3:c1dee77b3e02 62 if (button)
kafka 3:c1dee77b3e02 63 break;
kafka 3:c1dee77b3e02 64 wait_ms(time);
kafka 3:c1dee77b3e02 65 anz++;
kafka 3:c1dee77b3e02 66 }
kafka 3:c1dee77b3e02 67 return anz;
kafka 3:c1dee77b3e02 68 }