Mirza Mesic
/
tinf_test_mesic_mirza_fertig
vollProgramm
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; }