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.
Diff: SPIDriver/SPIDriver.cpp
- Revision:
- 5:e4ed6c5baf89
- Parent:
- 4:a091b8f8216d
--- a/SPIDriver/SPIDriver.cpp Sun May 04 20:41:10 2014 +0000
+++ b/SPIDriver/SPIDriver.cpp Thu May 08 18:59:52 2014 +0000
@@ -30,28 +30,42 @@
void SPIDriver::pulseLatch(){
*latch = 1;
+ wait(0.000001);
*latch = 0;
}
void SPIDriver::sendLayer(LedCube* ledc){
- write(ledc->getNextValue()); //eerst laag selecteren, SPI zendt normaalgezien MSB first
+ unsigned char valueled = ledc->getNextValue();
+ // printf("%d ", valueled);
+ write(valueled); //eerst laag selecteren, SPI zendt normaalgezien MSB first
for(int j = 0; j < 24; j++) {
- write(ledc->getNextValue()); //ledwaarden zelf nog altijd apart, omdat ze mogelijk gespiegeld moeten doorgestuurd worden
+ unsigned char valueled = ledc->getNextValue();
+ // printf("%d ", valueled);
+ write(valueled); //ledwaarden zelf nog altijd apart, omdat ze mogelijk gespiegeld moeten doorgestuurd worden
} //(LSB first)
}
void SPIDriver::sendFrame(LedCube* ledc){
- for(int i = 0; i < 8; i++) {
- wait(0.00125); //voor 100 Hz
+ for(int i = 0; i < 8; i++) {
+ sendLayer(ledc);
+ wait(0.00025); //voor 100 Hz
pulseLatch();
}//end outer for loop
// printf("Frame gezonden!!\n\r");
}
+void SPIDriver::sendTestFrame(LedCube* ledc){
+ for(int i = 0; i < 8; i++) {
+ sendLayer(ledc);
+ wait(0.00125);
+ pulseLatch();
+ }
+}
+
void SPIDriver::sendTest(LedCube* ledc, int frames){
printf("Testing...\n\r");
for(int i = 0; i < frames; i++) {
- sendFrame(ledc);
+ sendTestFrame(ledc);
}
}
@@ -59,11 +73,11 @@
printf("Initiating Test phase\n\r");
LedCube* testledcube1 = new LedCube();
- testledcube1->testMode(LedCube::firsthalfwhite);
+ // testledcube1->testMode(LedCube::firsthalfwhite);
sendTest(testledcube1, xframes);
LedCube* testledcube2 = new LedCube();
- testledcube2->testMode(LedCube::secondhalfwhite);
+ // testledcube2->testMode(LedCube::secondhalfwhite);
sendTest(testledcube2, xframes);
printf("Test phase terminated!\n\r");