demo versie 16/05

Dependencies:   EthernetInterface mbed-rto mbed

Fork of ProjectVLC by Klaas Govaerts

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