initial commit and publish

Dependencies:   mbed

Committer:
kafka
Date:
Mon Jan 13 17:38:52 2020 +0000
Revision:
4:a1b882076f41
Parent:
3:c1dee77b3e02
Child:
5:c7b761205cd6
final version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kafka 0:886ff6a91b2c 1 #include "mbed.h"
kafka 0:886ff6a91b2c 2 // #define BUTTON1 A1
kafka 0:886ff6a91b2c 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 3:c1dee77b3e02 45 uint8_t lauf = 0x01;
kafka 3:c1dee77b3e02 46
kafka 3:c1dee77b3e02 47 if(!richtung)
kafka 3:c1dee77b3e02 48 lauf = 0x08;
kafka 3:c1dee77b3e02 49 while(1) {
kafka 3:c1dee77b3e02 50 nibbleLeds(lauf & 0x0f);
kafka 3:c1dee77b3e02 51 if(richtung){
kafka 3:c1dee77b3e02 52 lauf = lauf << 1;
kafka 3:c1dee77b3e02 53 if (lauf > 8)
kafka 3:c1dee77b3e02 54 lauf = 0x08;
kafka 3:c1dee77b3e02 55 }
kafka 3:c1dee77b3e02 56 else {
kafka 3:c1dee77b3e02 57 lauf = lauf >> 1;
kafka 3:c1dee77b3e02 58 if ( lauf == 0)
kafka 3:c1dee77b3e02 59 lauf = 0x08;
kafka 3:c1dee77b3e02 60 }
kafka 3:c1dee77b3e02 61 if (button)
kafka 3:c1dee77b3e02 62 break;
kafka 3:c1dee77b3e02 63 wait_ms(time);
kafka 3:c1dee77b3e02 64 anz++;
kafka 3:c1dee77b3e02 65 }
kafka 3:c1dee77b3e02 66 return anz;
kafka 3:c1dee77b3e02 67 }