test programm

Dependencies:   mbed

main.cpp

Committer:
adiam
Date:
2020-01-13
Revision:
5:630756c3af86
Parent:
4:3af6714f01d6

File content as of revision 5:630756c3af86:

#include "mbed.h"

#define BUTTON1  P14 // M3:push joystick pin 
#define BUTTON1 A1 //NUCLEO:Taster A1

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

void nibbleLeds(int value);
 
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) {
    
    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;
    }