Tina Dokic
/
Test_13_01_
-1_modifyBit_return_mask
main.cpp
- Committer:
- tina_dokic
- Date:
- 2020-01-13
- Revision:
- 5:c955c3107198
- Parent:
- 4:f1828d2226c0
- Child:
- 6:ba829c650a6c
File content as of revision 5:c955c3107198:
#include "mbed.h" #define BUTTON1 pl4// M3:pusch 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); 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(modifyBit(INIT,3,1)); wait(0.1); } int modifyBit(int x,unsigned char 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"); }