Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
- Committer:
- mirzamesic
- Date:
- 2020-01-13
- Revision:
- 4:6eb0d62c4fbf
- Parent:
- 3:21631924f2f1
- Child:
- 5:9c82d0bfc647
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;
}