main

Dependencies:   mbed

test.cpp

Committer:
robertbuc
Date:
2020-01-13
Revision:
5:d0e564605224
Parent:
4:179695a6d7fd

File content as of revision 5:d0e564605224:

/*
 weitere viele Beispiele in meinem WIKI
 
*/

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


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

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);
    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)
{
    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;
}
        

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;
}