Nick Lowyck / Mbed 2 deprecated Ledcube

Dependencies:   mbed mbed-rtos

Committer:
sNICKer1103
Date:
Thu May 08 18:59:52 2014 +0000
Revision:
5:e4ed6c5baf89
Parent:
4:a091b8f8216d
ter

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sNICKer1103 0:333c9abcd919 1 #include "mbed.h"
sNICKer1103 2:f2700008c9d9 2 #include "I2CDriver.h"
sNICKer1103 2:f2700008c9d9 3 #include "SPIDriver.h"
sNICKer1103 2:f2700008c9d9 4 #include "LedCube.h"
sNICKer1103 3:da30c350c339 5 #include "rtos.h"
sNICKer1103 0:333c9abcd919 6
sNICKer1103 4:a091b8f8216d 7 const int FRAMES = 700;
sNICKer1103 5:e4ed6c5baf89 8 const int SPIFREQ = 1000000; //frequency of SPI interface
sNICKer1103 5:e4ed6c5baf89 9 const char ADDRESS = 0x60; //address van I2C interface
sNICKer1103 5:e4ed6c5baf89 10 unsigned char buffer[512];
sNICKer1103 5:e4ed6c5baf89 11 Mutex valuesmutex;
sNICKer1103 0:333c9abcd919 12
sNICKer1103 3:da30c350c339 13 LedCube* ledcube = new LedCube();
sNICKer1103 5:e4ed6c5baf89 14 SPIDriver* spidriver = new SPIDriver(p5, NC, p7, p8, p11, SPIFREQ);
sNICKer1103 4:a091b8f8216d 15 I2CDriver* i2cdriver = new I2CDriver(p28, p27, ADDRESS);
sNICKer1103 5:e4ed6c5baf89 16 DigitalOut blank(p9);
sNICKer1103 0:333c9abcd919 17
sNICKer1103 4:a091b8f8216d 18 void streamThread(void const* args);
sNICKer1103 4:a091b8f8216d 19 void inputThread(void const* args);
sNICKer1103 0:333c9abcd919 20
sNICKer1103 0:333c9abcd919 21 int main()
sNICKer1103 0:333c9abcd919 22 {
sNICKer1103 5:e4ed6c5baf89 23 /* while(true){
sNICKer1103 5:e4ed6c5baf89 24 spidriver->sendLayer(ledcube);
sNICKer1103 5:e4ed6c5baf89 25 wait(0.5);
sNICKer1103 5:e4ed6c5baf89 26 } */
sNICKer1103 5:e4ed6c5baf89 27 /* blank = 1;
sNICKer1103 5:e4ed6c5baf89 28 wait_ms(1);*/
sNICKer1103 5:e4ed6c5baf89 29 blank = 0;
sNICKer1103 5:e4ed6c5baf89 30
sNICKer1103 5:e4ed6c5baf89 31 for(int i = 0; i < 512; i++) buffer[i] = 1;
sNICKer1103 5:e4ed6c5baf89 32
sNICKer1103 5:e4ed6c5baf89 33 ledcube->setData(buffer);
sNICKer1103 5:e4ed6c5baf89 34
sNICKer1103 5:e4ed6c5baf89 35 /* while(1){}*/
sNICKer1103 4:a091b8f8216d 36
sNICKer1103 5:e4ed6c5baf89 37 /* while(true) {
sNICKer1103 5:e4ed6c5baf89 38 char ledvalue = ledcube->getNextValue();
sNICKer1103 5:e4ed6c5baf89 39 printf("%d ", ledvalue);
sNICKer1103 5:e4ed6c5baf89 40 spidriver->write(ledvalue);
sNICKer1103 5:e4ed6c5baf89 41 wait(0.2);
sNICKer1103 5:e4ed6c5baf89 42 }*/
sNICKer1103 5:e4ed6c5baf89 43
sNICKer1103 5:e4ed6c5baf89 44 // spidriver->testPhase(FRAMES);
sNICKer1103 4:a091b8f8216d 45
sNICKer1103 5:e4ed6c5baf89 46 /* printf("Initiating stream from following matrices\n\r");
sNICKer1103 5:e4ed6c5baf89 47 ledcube->printAll();
sNICKer1103 5:e4ed6c5baf89 48 printf("Streaming...\n\r");*/
sNICKer1103 5:e4ed6c5baf89 49 /* spidriver->sendLayer(ledcube);
sNICKer1103 5:e4ed6c5baf89 50 wait(0.00125); //voor 100 Hz
sNICKer1103 5:e4ed6c5baf89 51 spidriver->pulseLatch();*/
sNICKer1103 5:e4ed6c5baf89 52
sNICKer1103 5:e4ed6c5baf89 53 /* while(true) {
sNICKer1103 5:e4ed6c5baf89 54 spidriver->sendFrame(ledcube);
sNICKer1103 5:e4ed6c5baf89 55 }*/
sNICKer1103 5:e4ed6c5baf89 56
sNICKer1103 4:a091b8f8216d 57 Thread thread1(streamThread);
sNICKer1103 4:a091b8f8216d 58 Thread thread2(inputThread);
sNICKer1103 5:e4ed6c5baf89 59 while(true){}
sNICKer1103 3:da30c350c339 60
sNICKer1103 0:333c9abcd919 61 }//end main
sNICKer1103 0:333c9abcd919 62
sNICKer1103 4:a091b8f8216d 63 void streamThread(void const* args)
sNICKer1103 4:a091b8f8216d 64 {
sNICKer1103 4:a091b8f8216d 65 while(true) {
sNICKer1103 5:e4ed6c5baf89 66 valuesmutex.lock();
sNICKer1103 4:a091b8f8216d 67 spidriver->sendFrame(ledcube);
sNICKer1103 5:e4ed6c5baf89 68 valuesmutex.unlock();
sNICKer1103 4:a091b8f8216d 69 }
sNICKer1103 1:53b8c6b13010 70 }
sNICKer1103 1:53b8c6b13010 71
sNICKer1103 4:a091b8f8216d 72 void inputThread(void const* args)
sNICKer1103 1:53b8c6b13010 73 {
sNICKer1103 4:a091b8f8216d 74 while(true) {
sNICKer1103 5:e4ed6c5baf89 75 valuesmutex.lock();
sNICKer1103 4:a091b8f8216d 76 i2cdriver->pollForInput(ledcube);
sNICKer1103 5:e4ed6c5baf89 77 valuesmutex.unlock();
sNICKer1103 1:53b8c6b13010 78 }
sNICKer1103 0:333c9abcd919 79 }