Main

Dependencies:   mbed

main.cpp

Committer:
muminhadzic
Date:
2020-01-13
Revision:
4:f3985b5c3549
Parent:
3:aaaaf9f23f46

File content as of revision 4:f3985b5c3549:

#include "mbed.h"
#define BUTTON1 p14 
//#define BUTTON1 A1

int lauflicht(bool richtung,int time, int &anz);
int modifyBit(int x, unsigned char position, bool State);
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);


}
//**************************************************************

void nibbleLeds(int value) {
myleds= value%16;
}

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

}

int lauflicht(bool richtung,int time, int &anz){
    int i;
    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; 
    
    }
    int modifyBit(int x, unsigned char position, bool State) {
    
    int mask=1<< position;
    int state = int(State);
    return(x & ~mask) | ((state<<position)& mask);
    
    
    }