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.
Dependencies: mbed
Revision 6:185747027de6, committed 2014-06-27
- Comitter:
- abuitrag
- Date:
- Fri Jun 27 00:13:36 2014 +0000
- Parent:
- 5:4a44eb020490
- Commit message:
- fucked up, sorry, restored old function;
Changed in this revision
| MainMitFreq.cpp | Show annotated file Show diff for this revision Revisions of this file |
| TestRadar.cpp | Show diff for this revision Revisions of this file |
diff -r 4a44eb020490 -r 185747027de6 MainMitFreq.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MainMitFreq.cpp Fri Jun 27 00:13:36 2014 +0000
@@ -0,0 +1,519 @@
+#include "mbed.h"
+
+SPI spiR(p11, p12, p13); // mosi, miso, sclk
+DigitalOut lpR(p10);
+DigitalOut bpR(p14);
+
+SPI spiL(p5, p6, p7);
+DigitalOut lpL(p8);
+DigitalOut bpL(p9);
+
+void latch()
+{
+ lpR = 1;
+ lpL = 1;
+ lpR = 1;
+ lpL = 1;
+ lpR = 1;
+ lpL = 1;
+ lpR = 0;
+ lpL = 0;
+}
+
+
+
+//FREQ CONTROL CONFIG
+
+Ticker tick;
+InterruptIn in(p22);
+Timer t1;
+Timer t2;
+
+//INTERRUPT FEEDBACK LED
+
+DigitalOut led(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+
+//RUNTIME VARS
+
+float t_period = 0; // This is the period between interrupts in microseconds
+float t_freq = 0;
+int last = -1;
+float curt = 0;
+int f = 0;
+
+//DUMMY FUNCTION AS THERE IS NO HEADER FILE
+
+void flip();
+void flip()
+{
+ t_period = t1.read_us(); // Get time since last interrupt
+ t_freq = (1/(float)t_period)*1000000; // Convert period (in us) to frequency (Hz)
+ t1.reset(); // Reset timer and wait for next interrupt
+ t2.reset();
+ led = !led;
+ f++;
+}
+
+short outp[48][48]= {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+ {0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+};
+
+//short actualrowR[48]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+//short actualrowL[48]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+int x,j;
+
+short actualrowR[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+short actualrowL[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+
+short cakeempty[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+short cakefull[24]= {0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,
+ 0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF
+ };
+
+short radaroff[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+short radaron[24]= {0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,
+ 0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF
+ };
+short radardot[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0};
+
+int lookupport(int j)
+{
+ int led, p;
+
+ if(j%2 == 1) //Alle ungeradezahligen Ports
+ //werden vom rechten Controller angesteuert
+ //entsprechend wird "R" als "Side" zugewiesen
+ {
+
+ p = j/2; //Durch Division /2 bekommen wir eine "normierte Reihe" also (0,1 ,2 ... 12)
+
+ if (p%2 == 0) //nochmal %2 da Ports sich abwechseln (0, 23, 1, 22... siehe Tabelle)
+ led = 23 - (p/2); //also von "p" ausgegangen, beginnen gerade Zahlen von hinten an (Ports 23, 22, 21... 12)
+ else
+ led = (p/2); // ungerade Zahlen beginnen von vorne an (Port 0, 1, 2... 11)
+ }
+
+ else
+
+ {
+ p = (j-1)/2;
+
+ if (p%2 == 0)
+ led = 23 - (p/2);
+ else
+ led = (p/2);
+ }
+ return led;
+
+}
+
+//returns 1 if right Port, else 0
+int lookupLR(int j)
+{
+ return j % 2;
+}
+
+//Hier kommt die Funktion
+
+
+int main()
+{
+
+ lpR = 0;
+ lpL = 0;
+ spiR.format(12, 0);
+ spiR.frequency(30 * 1000 * 1000);
+ spiL.format(12, 0);
+ spiL.frequency(30 * 1000 * 1000);
+ bpR=1;
+ bpL = 1;
+
+ /*
+ LocalFileSystem local("local");
+ FILE *fp;
+ fp = fopen("/local/curstate.txt", "a+"); // Open "out.txt" on the local file system for writing
+
+ if (fp==NULL) {
+ fp = freopen("/local/curstate.txt","w", fp);
+ led =1;
+ freopen(NULL, "r",fp);
+
+ //error("File could not be opened!");
+ }
+ led4 = 1;
+ int cstate = fgetc(fp);
+ int state = -1;
+ if (cstate == EOF) {
+ freopen(NULL, "w", fp);
+ if (fputc('0',fp) == EOF) {
+ led2=1;
+ //error("File can not be used!");
+ }
+ freopen(NULL, "r", fp);
+ }
+ led4 =1;
+ switch (cstate) {
+ case '0': {
+ state = 0;
+ break;
+ }
+ case '1': {
+ state = 1;
+ break;
+ }
+ case '2': {
+ state = 2;
+ break;
+ }
+ default: {
+ freopen(NULL, "r", fp);
+ if (fputc('0',fp) == EOF) {
+ led3=1;
+ //error("File can not be used!");
+ }
+ freopen(NULL, "r", fp);
+ state = 0;
+ break;
+ }
+ }
+
+ fclose(fp);
+ */
+
+
+
+ for (int v = 0; v<5; ++v) {
+
+ for(int i=47; i>=0; i--) {
+ bpR=1;
+ bpL = 1;
+ for(int j = 0; j<sizeof(outp[0])/sizeof(outp[0][0]); j++) {
+ if (lookupLR(j)) {
+ actualrowR[lookupport(j)] = outp[i][j];
+ } else {
+ actualrowL[lookupport(j)] = outp[i][j];
+ }
+ }
+ for (int k =0; k<sizeof(actualrowR)/sizeof(actualrowR[0]); ++k) {
+ spiR.write(actualrowR[k]);
+ }
+ for (int k =0; k<sizeof(actualrowL)/sizeof(actualrowL[0]); ++k) {
+ spiL.write(actualrowL[k]);
+ }
+ latch();
+ bpR=0;
+ bpL = 0;
+ wait(0.08);
+ }
+ for(int i=0; i<sizeof(outp)/sizeof(outp[0]); i++) {
+ bpR=1;
+ bpL = 1;
+ for(int j = 0; j<sizeof(outp[0])/sizeof(outp[0][0]); j++) {
+ if (lookupLR(j)) {
+ actualrowR[lookupport(j)] = outp[i][j];
+ } else {
+ actualrowL[lookupport(j)] = outp[i][j];
+ }
+ }
+ for (int k =0; k<sizeof(actualrowR)/sizeof(actualrowR[0]); ++k) {
+ spiR.write(actualrowR[k]);
+ }
+ for (int k =0; k<sizeof(actualrowL)/sizeof(actualrowL[0]); ++k) {
+ spiL.write(actualrowL[k]);
+ }
+ latch();
+ bpR=0;
+ bpL = 0;
+ wait(0.08);
+ }
+
+ }
+
+ //****************************//
+ //CAKE FUNCTION - YUM YUM
+ //****************************//
+
+
+ {
+ in.mode(PullDown); // Set the pin to Pull Down mode.
+ in.rise(&flip); // Set up the interrupt for rising edge
+ t1.start(); // start the timer
+ t2.start();
+
+ for(; f<500;) { //as a placeholder until we find a way to navigate between programmes
+
+ if(t_period == 0) {
+ continue;
+ }
+ curt = t2.read_us();
+ if (curt < t_period * 0.135
+ || (t_period/4 < curt && curt < (t_period*0.135)*3 )
+ || (t_period/2 < curt && curt < (t_period/0.135)*5 )
+ || ((t_period/4)*3 < curt && curt < (t_period/0.135)*7 )
+ ) {
+ if (last != 0) {
+ //cake empty
+
+ bpL=1;
+ bpR=1;
+ for (int j = 0; j<48; j++) {
+ spiR.write(0x000);
+ spiL.write(0x000);
+ }
+ //for(int j=0; j<sizeof(cakeempty)/sizeof(cakeempty[0]); j++) {
+ // spiR.write(cakeempty[j]);
+ //spiL.write(cakeempty[j]);
+ //}
+ latch();
+ bpL=0;
+ bpR=0;
+ last = 0;
+ }
+ } else {
+ if (last != 1) {
+
+ //cake full
+ bpL=1;
+ bpR=1;
+
+ for (int j = 0; j<48; j++) {
+ spiR.write(0xFFF);
+ spiL.write(0xFFF);
+ }
+
+ //for(int j=0; j<sizeof(cakefull)/sizeof(cakefull[0]); j++) {
+ // spiR.write(cakefull[j]);
+ //spiL.write(cakefull[j]);
+ //}
+ latch();
+ bpL=0;
+ bpR=0;
+ last = 1;
+ }
+ }
+
+ }
+
+
+ /*********************************/
+ // RADAR FUNCTION FUCK YEAH //
+ /**********************************/
+
+ f = 0;
+ in.mode(PullDown); // Set the pin to Pull Down mode.
+ in.rise(&flip); // Set up the interrupt for rising edge
+ t1.start(); // start the timer
+ t2.start();
+ //t3.start();
+
+ lpR = 0;
+ lpL = 0;
+ bpR=0;
+ bpL = 0;
+
+ for(; f<500;) {
+ bpL=1;
+ bpR=1;
+ for(j=0; j<sizeof(radaron)/sizeof(radaron[0]); j++) {
+ if(j%2==1) {
+ spiR.write(radaron[j]);
+ }
+ }
+ latch();
+ bpL=0;
+ bpR=0;
+ wait(0.15);
+
+ //right side off, left side on
+ //only if needed
+ bpL=1;
+ bpR=1;
+ for(j=0; j<sizeof(radaroff)/sizeof(radaroff[0]); j++) {
+ spiR.write(radaroff[j]);
+ }
+ bpL=0;
+ bpR=0;
+ wait(0.15);
+
+ //HERE COMES THE DOT, YO
+
+ bpL=1;
+ for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
+ spiL.write(radardot[j]);
+ }
+ latch();
+ bpL=0;
+ bpR=0;
+ wait(0.1);
+
+ bpL=1;
+ for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
+ spiL.write(radaroff[j]);
+ }
+ latch();
+ bpL=0;
+ bpR=0;
+ wait(0.1);
+
+ /*
+ if(t_period == 0) {
+ continue;
+ }*/
+
+
+
+
+ /* OLD FUNCTION
+ *
+ *
+
+ in.mode(PullDown); // Set the pin to Pull Down mode.
+ in.rise(&flip); // Set up the interrupt for rising edge
+ t1.start(); // start the timer
+ t2.start();
+ int a = 0;
+
+ while(1) { //as a placeholder until we find a way to navigate between programmes
+ a++;
+ if(t_period == 0) {
+ continue;
+ }
+ curt = t2.read_us();
+ if (curt !=t_period) {
+
+ } else {
+ if (last != 0) {
+ //cake empty
+
+ //HERE COMES THE DOT, YO
+
+ bpL=1;
+ for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
+ spiL.write(radardot[j]);
+ }
+ latch();
+ bpL=0;
+ bpR=0;
+ last = 0;
+ }
+ if (last != 1) {
+
+ bpL=1;
+ for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
+ spiL.write(radaroff[j]);
+ }
+ latch();
+ bpL=0;
+ bpR=0;
+ last = 1;
+ }
+ }
+ }
+ */
+
+
+
+ }
+
+
+
+//Please notice that the wait times for the needle and the dot are different - THIS IS INTENDED
+
+
+//radaron
+
+ /*for(x=0;x<20;x++){
+ bpL=1;
+ bpR=1;
+ for(j=0;j<sizeof(radaron)/sizeof(radaron[0]);j++){
+ spiR.write(radaron[j]);
+ }
+ latch();
+ bpL=0;
+ bpR=0;
+ wait(0.15);
+
+ //radaroff
+
+ bpL=1;
+ bpR=1;
+ for(j=0;j<sizeof(radaroff)/sizeof(radaroff[0]);j++){
+ spiR.write(radaroff[j]);
+ }
+ bpL=0;
+ bpR=0;
+ wait(0.15);
+
+ //HERE COMES THE DOT, YO
+
+ bpL=1;
+ for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
+ spiL.write(radardot[j]);
+ }
+ latch();
+ bpL=0;
+ bpR=0;
+ wait(0.1);
+
+ bpL=1;
+ for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
+ spiL.write(radaroff[j]);
+ }
+ latch();
+ bpL=0;
+ bpR=0;
+ wait(0.1);
+ }*/
+ }
+
+ }
+
\ No newline at end of file
diff -r 4a44eb020490 -r 185747027de6 TestRadar.cpp
--- a/TestRadar.cpp Fri Jun 27 00:12:42 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,519 +0,0 @@
-#include "mbed.h"
-
-SPI spiR(p11, p12, p13); // mosi, miso, sclk
-DigitalOut lpR(p10);
-DigitalOut bpR(p14);
-
-SPI spiL(p5, p6, p7);
-DigitalOut lpL(p8);
-DigitalOut bpL(p9);
-
-void latch()
-{
- lpR = 1;
- lpL = 1;
- lpR = 1;
- lpL = 1;
- lpR = 1;
- lpL = 1;
- lpR = 0;
- lpL = 0;
-}
-
-
-
-//FREQ CONTROL CONFIG
-
-Ticker tick;
-InterruptIn in(p22);
-Timer t1;
-Timer t2;
-
-//INTERRUPT FEEDBACK LED
-
-DigitalOut led(LED1);
-DigitalOut led2(LED2);
-DigitalOut led3(LED3);
-DigitalOut led4(LED4);
-
-//RUNTIME VARS
-
-float t_period = 0; // This is the period between interrupts in microseconds
-float t_freq = 0;
-int last = -1;
-float curt = 0;
-int f = 0;
-
-//DUMMY FUNCTION AS THERE IS NO HEADER FILE
-
-void flip();
-void flip()
-{
- t_period = t1.read_us(); // Get time since last interrupt
- t_freq = (1/(float)t_period)*1000000; // Convert period (in us) to frequency (Hz)
- t1.reset(); // Reset timer and wait for next interrupt
- t2.reset();
- led = !led;
- f++;
-}
-
-short outp[48][48]= {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-};
-
-//short actualrowR[48]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-//short actualrowL[48]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-int x,j;
-
-short actualrowR[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-short actualrowL[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-
-short cakeempty[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-short cakefull[24]= {0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,
- 0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF
- };
-
-short radaroff[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-short radaron[24]= {0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,
- 0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF
- };
-short radardot[24]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFFF,0,0,0,0,0,0,0,0};
-
-int lookupport(int j)
-{
- int led, p;
-
- if(j%2 == 1) //Alle ungeradezahligen Ports
- //werden vom rechten Controller angesteuert
- //entsprechend wird "R" als "Side" zugewiesen
- {
-
- p = j/2; //Durch Division /2 bekommen wir eine "normierte Reihe" also (0,1 ,2 ... 12)
-
- if (p%2 == 0) //nochmal %2 da Ports sich abwechseln (0, 23, 1, 22... siehe Tabelle)
- led = 23 - (p/2); //also von "p" ausgegangen, beginnen gerade Zahlen von hinten an (Ports 23, 22, 21... 12)
- else
- led = (p/2); // ungerade Zahlen beginnen von vorne an (Port 0, 1, 2... 11)
- }
-
- else
-
- {
- p = (j-1)/2;
-
- if (p%2 == 0)
- led = 23 - (p/2);
- else
- led = (p/2);
- }
- return led;
-
-}
-
-//returns 1 if right Port, else 0
-int lookupLR(int j)
-{
- return j % 2;
-}
-
-//Hier kommt die Funktion
-
-
-int main()
-{
-
- lpR = 0;
- lpL = 0;
- spiR.format(12, 0);
- spiR.frequency(30 * 1000 * 1000);
- spiL.format(12, 0);
- spiL.frequency(30 * 1000 * 1000);
- bpR=1;
- bpL = 1;
-
- /*
- LocalFileSystem local("local");
- FILE *fp;
- fp = fopen("/local/curstate.txt", "a+"); // Open "out.txt" on the local file system for writing
-
- if (fp==NULL) {
- fp = freopen("/local/curstate.txt","w", fp);
- led =1;
- freopen(NULL, "r",fp);
-
- //error("File could not be opened!");
- }
- led4 = 1;
- int cstate = fgetc(fp);
- int state = -1;
- if (cstate == EOF) {
- freopen(NULL, "w", fp);
- if (fputc('0',fp) == EOF) {
- led2=1;
- //error("File can not be used!");
- }
- freopen(NULL, "r", fp);
- }
- led4 =1;
- switch (cstate) {
- case '0': {
- state = 0;
- break;
- }
- case '1': {
- state = 1;
- break;
- }
- case '2': {
- state = 2;
- break;
- }
- default: {
- freopen(NULL, "r", fp);
- if (fputc('0',fp) == EOF) {
- led3=1;
- //error("File can not be used!");
- }
- freopen(NULL, "r", fp);
- state = 0;
- break;
- }
- }
-
- fclose(fp);
- */
-
-
-
- for (int v = 0; v<5; ++v) {
-
- for(int i=47; i>=0; i--) {
- bpR=1;
- bpL = 1;
- for(int j = 0; j<sizeof(outp[0])/sizeof(outp[0][0]); j++) {
- if (lookupLR(j)) {
- actualrowR[lookupport(j)] = outp[i][j];
- } else {
- actualrowL[lookupport(j)] = outp[i][j];
- }
- }
- for (int k =0; k<sizeof(actualrowR)/sizeof(actualrowR[0]); ++k) {
- spiR.write(actualrowR[k]);
- }
- for (int k =0; k<sizeof(actualrowL)/sizeof(actualrowL[0]); ++k) {
- spiL.write(actualrowL[k]);
- }
- latch();
- bpR=0;
- bpL = 0;
- wait(0.08);
- }
- for(int i=0; i<sizeof(outp)/sizeof(outp[0]); i++) {
- bpR=1;
- bpL = 1;
- for(int j = 0; j<sizeof(outp[0])/sizeof(outp[0][0]); j++) {
- if (lookupLR(j)) {
- actualrowR[lookupport(j)] = outp[i][j];
- } else {
- actualrowL[lookupport(j)] = outp[i][j];
- }
- }
- for (int k =0; k<sizeof(actualrowR)/sizeof(actualrowR[0]); ++k) {
- spiR.write(actualrowR[k]);
- }
- for (int k =0; k<sizeof(actualrowL)/sizeof(actualrowL[0]); ++k) {
- spiL.write(actualrowL[k]);
- }
- latch();
- bpR=0;
- bpL = 0;
- wait(0.08);
- }
-
- }
-
- //****************************//
- //CAKE FUNCTION - YUM YUM
- //****************************//
-
-
- {
- in.mode(PullDown); // Set the pin to Pull Down mode.
- in.rise(&flip); // Set up the interrupt for rising edge
- t1.start(); // start the timer
- t2.start();
-
- for(; f<500;) { //as a placeholder until we find a way to navigate between programmes
-
- if(t_period == 0) {
- continue;
- }
- curt = t2.read_us();
- if (curt < t_period * 0.135
- || (t_period/4 < curt && curt < (t_period*0.135)*3 )
- || (t_period/2 < curt && curt < (t_period/0.135)*5 )
- || ((t_period/4)*3 < curt && curt < (t_period/0.135)*7 )
- ) {
- if (last != 0) {
- //cake empty
-
- bpL=1;
- bpR=1;
- for (int j = 0; j<48; j++) {
- spiR.write(0x000);
- spiL.write(0x000);
- }
- //for(int j=0; j<sizeof(cakeempty)/sizeof(cakeempty[0]); j++) {
- // spiR.write(cakeempty[j]);
- //spiL.write(cakeempty[j]);
- //}
- latch();
- bpL=0;
- bpR=0;
- last = 0;
- }
- } else {
- if (last != 1) {
-
- //cake full
- bpL=1;
- bpR=1;
-
- for (int j = 0; j<48; j++) {
- spiR.write(0xFFF);
- spiL.write(0xFFF);
- }
-
- //for(int j=0; j<sizeof(cakefull)/sizeof(cakefull[0]); j++) {
- // spiR.write(cakefull[j]);
- //spiL.write(cakefull[j]);
- //}
- latch();
- bpL=0;
- bpR=0;
- last = 1;
- }
- }
-
- }
-
-
- /*********************************/
- // RADAR FUNCTION FUCK YEAH //
- /**********************************/
-
- f = 0;
- in.mode(PullDown); // Set the pin to Pull Down mode.
- in.rise(&flip); // Set up the interrupt for rising edge
- t1.start(); // start the timer
- t2.start();
- //t3.start();
-
- lpR = 0;
- lpL = 0;
- bpR=0;
- bpL = 0;
-
- for(; f<500;) {
- bpL=1;
- bpR=1;
- for(j=0; j<sizeof(radaron)/sizeof(radaron[0]); j++) {
- if(j%2==1) {
- spiR.write(radaron[j]);
- }
- }
- latch();
- bpL=0;
- bpR=0;
- wait(0.15);
-
- //right side off, left side on
- //only if needed
- bpL=1;
- bpR=1;
- for(j=0; j<sizeof(radaroff)/sizeof(radaroff[0]); j++) {
- spiR.write(radaroff[j]);
- }
- bpL=0;
- bpR=0;
- wait(0.15);
-
- //HERE COMES THE DOT, YO
-
- bpL=1;
- for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
- spiL.write(radardot[j]);
- }
- latch();
- bpL=0;
- bpR=0;
- wait(0.1);
-
- bpL=1;
- for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
- spiL.write(radaroff[j]);
- }
- latch();
- bpL=0;
- bpR=0;
- wait(0.1);
-
- /*
- if(t_period == 0) {
- continue;
- }*/
-
-
-
-
- /* OLD FUNCTION
- *
- *
-
- in.mode(PullDown); // Set the pin to Pull Down mode.
- in.rise(&flip); // Set up the interrupt for rising edge
- t1.start(); // start the timer
- t2.start();
- int a = 0;
-
- while(1) { //as a placeholder until we find a way to navigate between programmes
- a++;
- if(t_period == 0) {
- continue;
- }
- curt = t2.read_us();
- if (curt !=t_period) {
-
- } else {
- if (last != 0) {
- //cake empty
-
- //HERE COMES THE DOT, YO
-
- bpL=1;
- for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
- spiL.write(radardot[j]);
- }
- latch();
- bpL=0;
- bpR=0;
- last = 0;
- }
- if (last != 1) {
-
- bpL=1;
- for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
- spiL.write(radaroff[j]);
- }
- latch();
- bpL=0;
- bpR=0;
- last = 1;
- }
- }
- }
- */
-
-
-
- }
-
-
-
-//Please notice that the wait times for the needle and the dot are different - THIS IS INTENDED
-
-
-//radaron
-
- /*for(x=0;x<20;x++){
- bpL=1;
- bpR=1;
- for(j=0;j<sizeof(radaron)/sizeof(radaron[0]);j++){
- spiR.write(radaron[j]);
- }
- latch();
- bpL=0;
- bpR=0;
- wait(0.15);
-
- //radaroff
-
- bpL=1;
- bpR=1;
- for(j=0;j<sizeof(radaroff)/sizeof(radaroff[0]);j++){
- spiR.write(radaroff[j]);
- }
- bpL=0;
- bpR=0;
- wait(0.15);
-
- //HERE COMES THE DOT, YO
-
- bpL=1;
- for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
- spiL.write(radardot[j]);
- }
- latch();
- bpL=0;
- bpR=0;
- wait(0.1);
-
- bpL=1;
- for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
- spiL.write(radaroff[j]);
- }
- latch();
- bpL=0;
- bpR=0;
- wait(0.1);
- }*/
- }
-
- }
-
\ No newline at end of file