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:
- 4:a091b8f8216d
- Parent:
- 3:da30c350c339
- Child:
- 5:e4ed6c5baf89
--- a/SPIDriver/SPIDriver.cpp Fri May 02 18:26:40 2014 +0000
+++ b/SPIDriver/SPIDriver.cpp Sun May 04 20:41:10 2014 +0000
@@ -1,5 +1,6 @@
#include "SPIDriver.h"
#include "mbed.h"
+#include "rtos.h"
SPIDriver::SPIDriver(PinName pin1, PinName pin2, PinName pin3, PinName latchpin, PinName cspin, const int freq) : spi(pin1, pin2, pin3){
spi.format(8, 3);
@@ -32,15 +33,19 @@
*latch = 0;
}
+void SPIDriver::sendLayer(LedCube* ledc){
+ write(ledc->getNextValue()); //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
+ } //(LSB first)
+}
+
void SPIDriver::sendFrame(LedCube* ledc){
- for(int i = 0; i < 8; i++) { //eerst laag selecteren, SPI zendt normaalgezien MSB first
- write(ledc->getNextValue());
- for(int j = 0; j < 24; j++) {
- write(ledc->getNextValue()); //ledwaarden zelf nog altijd apart, omdat ze mogelijk gespiegeld moeten doorgestuurd worden
- } //(LSB first)
+ for(int i = 0; i < 8; i++) {
wait(0.00125); //voor 100 Hz
pulseLatch();
}//end outer for loop
+ // printf("Frame gezonden!!\n\r");
}
void SPIDriver::sendTest(LedCube* ledc, int frames){
@@ -54,26 +59,16 @@
printf("Initiating Test phase\n\r");
LedCube* testledcube1 = new LedCube();
- LedCube* testledcube2 = new LedCube();
+ testledcube1->testMode(LedCube::firsthalfwhite);
+ sendTest(testledcube1, xframes);
- testledcube1->testMode(LedCube::firsthalfwhite);
+ LedCube* testledcube2 = new LedCube();
testledcube2->testMode(LedCube::secondhalfwhite);
-
- sendTest(testledcube1, xframes);
sendTest(testledcube2, xframes);
printf("Test phase terminated!\n\r");
}
-void SPIDriver::stream(LedCube* ledc){
- printf("Initiating stream from following matrices\n\r");
- ledc->printAll();
- printf("Streaming...\n\r");
- while(true){
- sendFrame(ledc);
- }
-}
-
uint8_t SPIDriver::reverse_byte(uint8_t byte)
{
return (__rbit(byte) >> 24) & 0xFF; // reverse a byte in a 32-bit value, and extract the byte