vollProgramm

Dependencies:   mbed

main.cpp

Committer:
mirzamesic
Date:
2020-01-13
Revision:
4:6eb0d62c4fbf
Parent:
3:21631924f2f1

File content as of revision 4:6eb0d62c4fbf:

#include "mbed.h"
#define BUTTON1 p14

int modifyBit(int x, unsigned char position, bool State);
int lauflicht(bool richtung, int time, int &anz);
void nibbleLeds(int value);
void printb(uint8_t x);

BusOut myleds(LED1,LED2,LED3,LED4);
DigitalIn button(BUTTON1);

const int INIT = 0x03;

int main()
{
    int anzahl, anz;
    uint8_t value = INIT;
    anzahl = lauflicht(true, 400, anz=0);
    printf("anzahl = %d\n", anzahl);

    nibbleLeds(value);
    printb(value);
    value = modifyBit(value,2,1);
    printb(myleds);
    printb(modifyBit(INIT,3,1));
    wait(0.1);
}

int modifyBit(int x,uint8_t position, bool State)
{
    int mask = 1>>position;
    int state = int(State);
    return(x & ~mask) | ((state<<position) & mask);

}




int lauflicht(bool richtung, int time, int &anz)
{

    uint8_t lauf = 0x01;

    if(!richtung)
        lauf= 0x08;
    while(1) {
        nibbleLeds(lauf&0x0F);
        if(richtung) {

            lauf = lauf << 1;
            if(lauf>8)
                lauf = 0x01;

        } else {
            lauf = lauf >>1;
            if(lauf == 0)
                lauf = 0x08;
        }
        if(button)
            break;
        wait_ms(time);
        anz++;

    }
    return anz;


}

void printb(uint8_t x)
{

    for(int i=sizeof(x)<<3; i; i--)
        putchar('0'+((x>>(i-1))&1));
    printf("\n");

}


void nibbleLeds (int value)
{

    myleds = value%16;

}