test

Dependencies:   mbed

Committer:
jesephin
Date:
Mon Jan 13 18:01:44 2020 +0000
Revision:
5:e8861f51128f
Parent:
4:af513265bf6c
Child:
6:9b523c7d1475
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jesephin 0:13c06c8c9762 1 #include "mbed.h"
jesephin 0:13c06c8c9762 2 //#define BUTTON1 p14 //M3:push joystick pin
jesephin 0:13c06c8c9762 3 //#define BUTTON1 A1 //NuCLEO: Taster A1
jesephin 0:13c06c8c9762 4
jesephin 0:13c06c8c9762 5
jesephin 0:13c06c8c9762 6 int modifyBit(int x,unsigned char position,bool State);
jesephin 0:13c06c8c9762 7 int lauflicht(bool richtung,int time,int &anz);
jesephin 0:13c06c8c9762 8 void nibbbledLeds(int value);
jesephin 0:13c06c8c9762 9 void printb(uint8_t x);
jesephin 0:13c06c8c9762 10
jesephin 4:af513265bf6c 11 BusOut myleds(LED1,LED2,LED3,LED4);
jesephin 4:af513265bf6c 12 DigitalIn button(BUTTON1);
jesephin 0:13c06c8c9762 13
jesephin 4:af513265bf6c 14 const int INIT=ox03;
jesephin 0:13c06c8c9762 15
jesephin 0:13c06c8c9762 16 int main() {
jesephin 0:13c06c8c9762 17 int anzahl,anz;
jesephin 5:e8861f51128f 18 uint8_t value=INIT;
jesephin 0:13c06c8c9762 19
jesephin 0:13c06c8c9762 20 anzahl=lauflicht(true,400,anz=0);
jesephin 0:13c06c8c9762 21 printf("anzahl=%d\n",anzahl);
jesephin 0:13c06c8c9762 22
jesephin 0:13c06c8c9762 23 nibbleLeds(value);
jesephin 0:13c06c8c9762 24 printb(value);
jesephin 0:13c06c8c9762 25 value=modifyBit(value,2,1);
jesephin 0:13c06c8c9762 26 printb(myleds);
jesephin 0:13c06c8c9762 27 printb(modifyBit(INIT,3,1));
jesephin 0:13c06c8c9762 28 wait(0.1);
jesephin 0:13c06c8c9762 29
jesephin 0:13c06c8c9762 30 }
jesephin 0:13c06c8c9762 31
jesephin 0:13c06c8c9762 32 int modifyBit(intx,unit8_t position,bool State)
jesephin 0:13c06c8c9762 33 {
jesephin 0:13c06c8c9762 34 int mask = 1 << position;
jesephin 0:13c06c8c9762 35 int state = int(State);
jesephin 0:13c06c8c9762 36 return(x&~mask)|((state<<position)&mask);
jesephin 0:13c06c8c9762 37 }
jesephin 0:13c06c8c9762 38
jesephin 5:e8861f51128f 39 void nibbleLeds(int value)
jesephin 5:e8861f51128f 40 {
jesephin 5:e8861f51128f 41 myled=value%16;
jesephin 5:e8861f51128f 42 }
jesephin 0:13c06c8c9762 43 int lauflicht(bool richtung,int time,int&anz)
jesephin 1:842be995801a 44 {
jesephin 1:842be995801a 45 int i;
jesephin 1:842be995801a 46 unit8_t lauf=0x01;
jesephin 1:842be995801a 47 if(!richtung)
jesephin 1:842be995801a 48 lauf=0x08;
jesephin 1:842be995801a 49
jesephin 2:fbffbc249ee9 50 while(1)
jesephin 2:fbffbc249ee9 51 {
jesephin 2:fbffbc249ee9 52 nibbleLeds(lauf&0x0F);
jesephin 2:fbffbc249ee9 53 if(richtung)
jesephin 2:fbffbc249ee9 54 {
jesephin 2:fbffbc249ee9 55 lauf=lauf<<1;
jesephin 2:fbffbc249ee9 56 if(lauf>8)
jesephin 2:fbffbc249ee9 57 lauf=0x01;
jesephin 2:fbffbc249ee9 58 }
jesephin 2:fbffbc249ee9 59 else{
jesephin 2:fbffbc249ee9 60 lauf=lauf>>1;
jesephin 2:fbffbc249ee9 61 if(lauf==0)
jesephin 2:fbffbc249ee9 62 lauf=0x08;
jesephin 2:fbffbc249ee9 63 }
jesephin 2:fbffbc249ee9 64 if(button)
jesephin 2:fbffbc249ee9 65 break;
jesephin 2:fbffbc249ee9 66 wait_ms(time);
jesephin 2:fbffbc249ee9 67 anz++;
jesephin 2:fbffbc249ee9 68 }
jesephin 2:fbffbc249ee9 69 return anz;
jesephin 1:842be995801a 70 }
jesephin 0:13c06c8c9762 71 }
jesephin 3:91bbd8d2f0c0 72 void printb(unit8_t x)
jesephin 3:91bbd8d2f0c0 73 {
jesephin 3:91bbd8d2f0c0 74 for(int i=sizeof(x)<<3;i;i--)
jesephin 3:91bbd8d2f0c0 75 putchar('0')+((x>>(i-1)&1));
jesephin 3:91bbd8d2f0c0 76 printf("\n");
jesephin 3:91bbd8d2f0c0 77 }
jesephin 2:fbffbc249ee9 78
jesephin 4:af513265bf6c 79 void nibbleLeds(int value)
jesephin 4:af513265bf6c 80 {
jesephin 4:af513265bf6c 81 myled=value%16;
jesephin 4:af513265bf6c 82 }
jesephin 4:af513265bf6c 83