test

Dependencies:   mbed

Committer:
jesephin
Date:
Mon Jan 13 18:06:32 2020 +0000
Revision:
7:8f0594cbc89a
Parent:
6:9b523c7d1475
Child:
8:2f1b2d1774a3
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jesephin 0:13c06c8c9762 1 #include "mbed.h"
jesephin 6:9b523c7d1475 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 6:9b523c7d1475 8 void nibbbleLeds(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 6:9b523c7d1475 14 const int INIT=0x03;
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 7:8f0594cbc89a 23 nibbbleLeds(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 7:8f0594cbc89a 32 void nibbleLeds(int value)
jesephin 7:8f0594cbc89a 33 {
jesephin 7:8f0594cbc89a 34 myleds=value%16;
jesephin 7:8f0594cbc89a 35 }
jesephin 0:13c06c8c9762 36 int modifyBit(intx,unit8_t position,bool State)
jesephin 0:13c06c8c9762 37 {
jesephin 0:13c06c8c9762 38 int mask = 1 << position;
jesephin 0:13c06c8c9762 39 int state = int(State);
jesephin 0:13c06c8c9762 40 return(x&~mask)|((state<<position)&mask);
jesephin 0:13c06c8c9762 41 }
jesephin 0:13c06c8c9762 42
jesephin 7:8f0594cbc89a 43
jesephin 0:13c06c8c9762 44 int lauflicht(bool richtung,int time,int&anz)
jesephin 1:842be995801a 45 {
jesephin 1:842be995801a 46 int i;
jesephin 1:842be995801a 47 unit8_t lauf=0x01;
jesephin 1:842be995801a 48 if(!richtung)
jesephin 1:842be995801a 49 lauf=0x08;
jesephin 1:842be995801a 50
jesephin 2:fbffbc249ee9 51 while(1)
jesephin 2:fbffbc249ee9 52 {
jesephin 2:fbffbc249ee9 53 nibbleLeds(lauf&0x0F);
jesephin 2:fbffbc249ee9 54 if(richtung)
jesephin 2:fbffbc249ee9 55 {
jesephin 2:fbffbc249ee9 56 lauf=lauf<<1;
jesephin 2:fbffbc249ee9 57 if(lauf>8)
jesephin 2:fbffbc249ee9 58 lauf=0x01;
jesephin 2:fbffbc249ee9 59 }
jesephin 2:fbffbc249ee9 60 else{
jesephin 2:fbffbc249ee9 61 lauf=lauf>>1;
jesephin 2:fbffbc249ee9 62 if(lauf==0)
jesephin 2:fbffbc249ee9 63 lauf=0x08;
jesephin 2:fbffbc249ee9 64 }
jesephin 2:fbffbc249ee9 65 if(button)
jesephin 2:fbffbc249ee9 66 break;
jesephin 2:fbffbc249ee9 67 wait_ms(time);
jesephin 2:fbffbc249ee9 68 anz++;
jesephin 2:fbffbc249ee9 69 }
jesephin 2:fbffbc249ee9 70 return anz;
jesephin 1:842be995801a 71 }
jesephin 0:13c06c8c9762 72 }
jesephin 3:91bbd8d2f0c0 73 void printb(unit8_t x)
jesephin 3:91bbd8d2f0c0 74 {
jesephin 3:91bbd8d2f0c0 75 for(int i=sizeof(x)<<3;i;i--)
jesephin 3:91bbd8d2f0c0 76 putchar('0')+((x>>(i-1)&1));
jesephin 3:91bbd8d2f0c0 77 printf("\n");
jesephin 3:91bbd8d2f0c0 78 }
jesephin 2:fbffbc249ee9 79
jesephin 4:af513265bf6c 80 void nibbleLeds(int value)
jesephin 4:af513265bf6c 81 {
jesephin 4:af513265bf6c 82 myled=value%16;
jesephin 4:af513265bf6c 83 }
jesephin 4:af513265bf6c 84