![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
demo versie 16/05
Dependencies: EthernetInterface mbed-rto mbed
Fork of ProjectVLC by
Diff: LEDDriver.cpp
- Revision:
- 10:7871aeacea08
- Parent:
- 9:c800045806f0
- Child:
- 12:1dc7dfe499fd
- Child:
- 25:4c673da1a3ae
diff -r c800045806f0 -r 7871aeacea08 LEDDriver.cpp --- a/LEDDriver.cpp Wed Apr 18 10:06:48 2018 +0000 +++ b/LEDDriver.cpp Wed Apr 25 07:22:18 2018 +0000 @@ -1,18 +1,17 @@ #include "LEDDriver.h" Serial pc(USBTX,USBRX); -LEDDriver::LEDDriver(/*Mutex* lock,*/ int* sharedDirections, int sizeOfSharedDirections) +LEDDriver::LEDDriver( int* sharedDirections, int sizeOfSharedDirections) { static int messageList[8]={0}; - static DigitalOut leds[]={DigitalOut(p10),DigitalOut(p11),DigitalOut(p12),DigitalOut(p13),DigitalOut(p14),DigitalOut(p15),DigitalOut(p16),DigitalOut(p17)}; - //this->lock=lock; + static DigitalOut leds[]={DigitalOut(p23),DigitalOut(p11),DigitalOut(p12),DigitalOut(p13),DigitalOut(p14),DigitalOut(p15),DigitalOut(p16),DigitalOut(p17)}; this->copy=Copy(); this->messageList=messageList; this->leds=leds; copy.copyInt((directions),sharedDirections,sizeOfSharedDirections); } -void LEDDriver::encode(int directionValue,int led) +void LEDDriver::determineMessage(int directionValue,int led) { if(directionValue==0) { @@ -40,16 +39,15 @@ void LEDDriver::drive(int numberOfLeds) { - int delay = 25; encodeAll(numberOfLeds);// 1 1 1 1 0 0 0 0 0 1 - static int codedMessage0[]={1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0}; + static int codedMessage0[]={1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0};//{1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0}; currently frequency measure message(standard square wave) // 1 1 1 1 0 1 0 0 0 1 static int codedMessage1[]={1,0,1,0,1,0,1,0,0,1,1,0,0,1,0,1,0,1,1,0}; // 1 1 1 1 1 0 1 0 0 1 static int codedMessage2[]={1,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,1,0}; // 1 1 1 1 1 1 0 0 0 1 static int codedMessage3[]={1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1,1,0}; - while(true) + while(true) { for(int j=0;j<20;j++) { @@ -58,26 +56,22 @@ if(messageList[i]==0) { leds[i].write(codedMessage0[j]); - pc.printf("led%d,message%d:%d\n\r",i,j,codedMessage0[j]); - wait_ms(delay);//500Hz 1/500 gewenste periode 8/90MHz(#leds/fclock) basis periode dus verhouding van de perioden / Clock is uiteindelijke frequentie (grof) moet manueel - } // gefinetuned worden. + ownWait(10);//100=708 HZ 10 = 7.08 kHZ + } else if(messageList[i]==1) { leds[i].write(codedMessage1[j]); - pc.printf("led%d,message%d:%d\n\r",i,j,codedMessage1[j]); - wait_ms(delay); + ownWait(10); } else if(messageList[i]==2) { leds[i].write(codedMessage2[j]); - pc.printf("led%d,message%d:%d\n\r",i,j,codedMessage2[j]); - wait_ms(delay); + ownWait(10); } else if(messageList[i]==3) { leds[i].write(codedMessage3[j]); - pc.printf("led%d,message%d:%d\n\r",i,j,codedMessage3[j]); - wait_ms(delay); + ownWait(10); } } } @@ -93,6 +87,17 @@ { for(int i = 0;i<numberOfLeds;i++) { - encode(getDirection(i),i); + determineMessage(getDirection(i),i); } +} + +void LEDDriver::ownWait(uint32_t us) +{ + for(uint32_t i=0;i<us;i++) + { + for(volatile uint32_t j =0; j <96;j++) + { + + } + } } \ No newline at end of file