Rotorhead / Mbed 2 deprecated MainMitFreq

Dependencies:   mbed

Committer:
dahooz
Date:
Wed Jun 25 15:22:02 2014 +0000
Revision:
2:7900c18cebd5
Parent:
1:c3ba9212f103
Child:
3:c9341431a333
Zeigt alles nacheinander an ohne Kontrolle, Radar funktioniert nicht.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
abuitrag 0:b738b4b05ed8 1 #include "mbed.h"
dahooz 2:7900c18cebd5 2
abuitrag 0:b738b4b05ed8 3 SPI spiR(p11, p12, p13); // mosi, miso, sclk
abuitrag 0:b738b4b05ed8 4 DigitalOut lpR(p10);
abuitrag 0:b738b4b05ed8 5 DigitalOut bpR(p14);
dahooz 2:7900c18cebd5 6
abuitrag 0:b738b4b05ed8 7 SPI spiL(p5, p6, p7);
abuitrag 0:b738b4b05ed8 8 DigitalOut lpL(p8);
abuitrag 0:b738b4b05ed8 9 DigitalOut bpL(p9);
dahooz 2:7900c18cebd5 10
abuitrag 0:b738b4b05ed8 11 void latch()
abuitrag 0:b738b4b05ed8 12 {
abuitrag 0:b738b4b05ed8 13 lpR = 1;
abuitrag 0:b738b4b05ed8 14 lpL = 1;
abuitrag 0:b738b4b05ed8 15 lpR = 1;
abuitrag 0:b738b4b05ed8 16 lpL = 1;
abuitrag 0:b738b4b05ed8 17 lpR = 1;
abuitrag 0:b738b4b05ed8 18 lpL = 1;
abuitrag 0:b738b4b05ed8 19 lpR = 0;
abuitrag 0:b738b4b05ed8 20 lpL = 0;
abuitrag 0:b738b4b05ed8 21 }
dahooz 2:7900c18cebd5 22
abuitrag 0:b738b4b05ed8 23
dahooz 2:7900c18cebd5 24
dahooz 2:7900c18cebd5 25 //FREQ CONTROL CONFIG
abuitrag 0:b738b4b05ed8 26
abuitrag 0:b738b4b05ed8 27 Ticker tick;
abuitrag 0:b738b4b05ed8 28 InterruptIn in(p22);
abuitrag 0:b738b4b05ed8 29 Timer t1;
abuitrag 0:b738b4b05ed8 30 Timer t2;
abuitrag 0:b738b4b05ed8 31
abuitrag 0:b738b4b05ed8 32 //INTERRUPT FEEDBACK LED
abuitrag 0:b738b4b05ed8 33
abuitrag 0:b738b4b05ed8 34 DigitalOut led(LED1);
dahooz 2:7900c18cebd5 35 DigitalOut led2(LED2);
dahooz 2:7900c18cebd5 36 DigitalOut led3(LED3);
dahooz 2:7900c18cebd5 37 DigitalOut led4(LED4);
abuitrag 0:b738b4b05ed8 38
abuitrag 0:b738b4b05ed8 39 //RUNTIME VARS
abuitrag 0:b738b4b05ed8 40
dahooz 2:7900c18cebd5 41 float t_period = 0; // This is the period between interrupts in microseconds
abuitrag 0:b738b4b05ed8 42 float t_freq = 0;
abuitrag 0:b738b4b05ed8 43 int last = -1;
dahooz 2:7900c18cebd5 44 float curt = 0;
dahooz 2:7900c18cebd5 45 int f = 0;
abuitrag 0:b738b4b05ed8 46
abuitrag 0:b738b4b05ed8 47 //DUMMY FUNCTION AS THERE IS NO HEADER FILE
abuitrag 0:b738b4b05ed8 48
abuitrag 0:b738b4b05ed8 49 void flip();
abuitrag 0:b738b4b05ed8 50 void flip()
abuitrag 0:b738b4b05ed8 51 {
abuitrag 0:b738b4b05ed8 52 t_period = t1.read_us(); // Get time since last interrupt
abuitrag 0:b738b4b05ed8 53 t_freq = (1/(float)t_period)*1000000; // Convert period (in us) to frequency (Hz)
abuitrag 0:b738b4b05ed8 54 t1.reset(); // Reset timer and wait for next interrupt
abuitrag 0:b738b4b05ed8 55 t2.reset();
abuitrag 0:b738b4b05ed8 56 led = !led;
dahooz 2:7900c18cebd5 57 f++;
dahooz 2:7900c18cebd5 58 }
dahooz 2:7900c18cebd5 59
dahooz 2:7900c18cebd5 60 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},
dahooz 2:7900c18cebd5 61 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 62 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 63 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 64 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 65 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 66 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 67 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 68 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 69 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 70 {0,0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 71 {0,0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 72 {0,0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 73 {0,0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 74 {0,0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 75 {0,0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 76 {0,0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 77 {0,0,0,0,0,0,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},
dahooz 2:7900c18cebd5 78 {0,0,0,0,0,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},
dahooz 2:7900c18cebd5 79 {0,0,0,0,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},
dahooz 2:7900c18cebd5 80 {0,0,0,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},
dahooz 2:7900c18cebd5 81 {0,0,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},
dahooz 2:7900c18cebd5 82 {0,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},
dahooz 2:7900c18cebd5 83 {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},
dahooz 2:7900c18cebd5 84 {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},
dahooz 2:7900c18cebd5 85 {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},
dahooz 2:7900c18cebd5 86 {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},
dahooz 2:7900c18cebd5 87 {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},
dahooz 2:7900c18cebd5 88 {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},
dahooz 2:7900c18cebd5 89 {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},
dahooz 2:7900c18cebd5 90 {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},
dahooz 2:7900c18cebd5 91 {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},
dahooz 2:7900c18cebd5 92 {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},
dahooz 2:7900c18cebd5 93 {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},
dahooz 2:7900c18cebd5 94 {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},
dahooz 2:7900c18cebd5 95 {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},
dahooz 2:7900c18cebd5 96 {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},
dahooz 2:7900c18cebd5 97 {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},
dahooz 2:7900c18cebd5 98 {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},
dahooz 2:7900c18cebd5 99 {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},
dahooz 2:7900c18cebd5 100 {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},
dahooz 2:7900c18cebd5 101 {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},
dahooz 2:7900c18cebd5 102 {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},
dahooz 2:7900c18cebd5 103 {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},
dahooz 2:7900c18cebd5 104 {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},
dahooz 2:7900c18cebd5 105 {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},
dahooz 2:7900c18cebd5 106 {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},
dahooz 2:7900c18cebd5 107 {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},
dahooz 2:7900c18cebd5 108 };
dahooz 2:7900c18cebd5 109
dahooz 2:7900c18cebd5 110 //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};
dahooz 2:7900c18cebd5 111 //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};
dahooz 2:7900c18cebd5 112 int x,j;
dahooz 2:7900c18cebd5 113
dahooz 2:7900c18cebd5 114 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};
dahooz 2:7900c18cebd5 115 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};
dahooz 2:7900c18cebd5 116
dahooz 2:7900c18cebd5 117 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};
dahooz 2:7900c18cebd5 118 short cakefull[24]= {0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,
dahooz 2:7900c18cebd5 119 0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF
dahooz 2:7900c18cebd5 120 };
dahooz 2:7900c18cebd5 121
dahooz 2:7900c18cebd5 122 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};
dahooz 2:7900c18cebd5 123 short radaron[24]= {0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,
dahooz 2:7900c18cebd5 124 0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF
dahooz 2:7900c18cebd5 125 };
dahooz 2:7900c18cebd5 126 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};
dahooz 2:7900c18cebd5 127
abuitrag 0:b738b4b05ed8 128 int lookupport(int j)
abuitrag 0:b738b4b05ed8 129 {
dahooz 2:7900c18cebd5 130 int led, p;
dahooz 2:7900c18cebd5 131
dahooz 2:7900c18cebd5 132 if(j%2 == 1) //Alle ungeradezahligen Ports
dahooz 2:7900c18cebd5 133 //werden vom rechten Controller angesteuert
dahooz 2:7900c18cebd5 134 //entsprechend wird "R" als "Side" zugewiesen
abuitrag 0:b738b4b05ed8 135 {
dahooz 2:7900c18cebd5 136
dahooz 2:7900c18cebd5 137 p = j/2; //Durch Division /2 bekommen wir eine "normierte Reihe" also (0,1 ,2 ... 12)
dahooz 2:7900c18cebd5 138
dahooz 2:7900c18cebd5 139 if (p%2 == 0) //nochmal %2 da Ports sich abwechseln (0, 23, 1, 22... siehe Tabelle)
dahooz 2:7900c18cebd5 140 led = 23 - (p/2); //also von "p" ausgegangen, beginnen gerade Zahlen von hinten an (Ports 23, 22, 21... 12)
dahooz 2:7900c18cebd5 141 else
dahooz 2:7900c18cebd5 142 led = (p/2); // ungerade Zahlen beginnen von vorne an (Port 0, 1, 2... 11)
abuitrag 0:b738b4b05ed8 143 }
dahooz 2:7900c18cebd5 144
dahooz 2:7900c18cebd5 145 else
dahooz 2:7900c18cebd5 146
dahooz 2:7900c18cebd5 147 {
abuitrag 0:b738b4b05ed8 148 p = (j-1)/2;
dahooz 2:7900c18cebd5 149
abuitrag 0:b738b4b05ed8 150 if (p%2 == 0)
dahooz 2:7900c18cebd5 151 led = 23 - (p/2);
abuitrag 0:b738b4b05ed8 152 else
dahooz 2:7900c18cebd5 153 led = (p/2);
dahooz 2:7900c18cebd5 154 }
dahooz 2:7900c18cebd5 155 return led;
dahooz 2:7900c18cebd5 156
abuitrag 0:b738b4b05ed8 157 }
dahooz 2:7900c18cebd5 158
abuitrag 0:b738b4b05ed8 159 //returns 1 if right Port, else 0
dahooz 2:7900c18cebd5 160 int lookupLR(int j)
dahooz 2:7900c18cebd5 161 {
dahooz 2:7900c18cebd5 162 return j % 2;
abuitrag 0:b738b4b05ed8 163 }
dahooz 2:7900c18cebd5 164
abuitrag 0:b738b4b05ed8 165 //Hier kommt die Funktion
dahooz 2:7900c18cebd5 166
dahooz 2:7900c18cebd5 167
abuitrag 0:b738b4b05ed8 168 int main()
dahooz 2:7900c18cebd5 169 {
dahooz 2:7900c18cebd5 170
abuitrag 0:b738b4b05ed8 171 lpR = 0;
abuitrag 0:b738b4b05ed8 172 lpL = 0;
abuitrag 0:b738b4b05ed8 173 spiR.format(12, 0);
abuitrag 0:b738b4b05ed8 174 spiR.frequency(30 * 1000 * 1000);
abuitrag 0:b738b4b05ed8 175 spiL.format(12, 0);
abuitrag 0:b738b4b05ed8 176 spiL.frequency(30 * 1000 * 1000);
dahooz 2:7900c18cebd5 177 bpR=1;
dahooz 2:7900c18cebd5 178 bpL = 1;
dahooz 2:7900c18cebd5 179
dahooz 2:7900c18cebd5 180 /*
dahooz 2:7900c18cebd5 181 LocalFileSystem local("local");
dahooz 2:7900c18cebd5 182 FILE *fp;
dahooz 2:7900c18cebd5 183 fp = fopen("/local/curstate.txt", "a+"); // Open "out.txt" on the local file system for writing
dahooz 2:7900c18cebd5 184
dahooz 2:7900c18cebd5 185 if (fp==NULL) {
dahooz 2:7900c18cebd5 186 fp = freopen("/local/curstate.txt","w", fp);
dahooz 2:7900c18cebd5 187 led =1;
dahooz 2:7900c18cebd5 188 freopen(NULL, "r",fp);
dahooz 2:7900c18cebd5 189
dahooz 2:7900c18cebd5 190 //error("File could not be opened!");
dahooz 2:7900c18cebd5 191 }
dahooz 2:7900c18cebd5 192 led4 = 1;
dahooz 2:7900c18cebd5 193 int cstate = fgetc(fp);
dahooz 2:7900c18cebd5 194 int state = -1;
dahooz 2:7900c18cebd5 195 if (cstate == EOF) {
dahooz 2:7900c18cebd5 196 freopen(NULL, "w", fp);
dahooz 2:7900c18cebd5 197 if (fputc('0',fp) == EOF) {
dahooz 2:7900c18cebd5 198 led2=1;
dahooz 2:7900c18cebd5 199 //error("File can not be used!");
dahooz 2:7900c18cebd5 200 }
dahooz 2:7900c18cebd5 201 freopen(NULL, "r", fp);
dahooz 2:7900c18cebd5 202 }
dahooz 2:7900c18cebd5 203 led4 =1;
dahooz 2:7900c18cebd5 204 switch (cstate) {
dahooz 2:7900c18cebd5 205 case '0': {
dahooz 2:7900c18cebd5 206 state = 0;
dahooz 2:7900c18cebd5 207 break;
dahooz 2:7900c18cebd5 208 }
dahooz 2:7900c18cebd5 209 case '1': {
dahooz 2:7900c18cebd5 210 state = 1;
dahooz 2:7900c18cebd5 211 break;
dahooz 2:7900c18cebd5 212 }
dahooz 2:7900c18cebd5 213 case '2': {
dahooz 2:7900c18cebd5 214 state = 2;
dahooz 2:7900c18cebd5 215 break;
dahooz 2:7900c18cebd5 216 }
dahooz 2:7900c18cebd5 217 default: {
dahooz 2:7900c18cebd5 218 freopen(NULL, "r", fp);
dahooz 2:7900c18cebd5 219 if (fputc('0',fp) == EOF) {
dahooz 2:7900c18cebd5 220 led3=1;
dahooz 2:7900c18cebd5 221 //error("File can not be used!");
dahooz 2:7900c18cebd5 222 }
dahooz 2:7900c18cebd5 223 freopen(NULL, "r", fp);
dahooz 2:7900c18cebd5 224 state = 0;
dahooz 2:7900c18cebd5 225 break;
dahooz 2:7900c18cebd5 226 }
dahooz 2:7900c18cebd5 227 }
dahooz 2:7900c18cebd5 228
dahooz 2:7900c18cebd5 229 fclose(fp);
dahooz 2:7900c18cebd5 230 */
dahooz 2:7900c18cebd5 231
dahooz 2:7900c18cebd5 232
dahooz 2:7900c18cebd5 233
dahooz 2:7900c18cebd5 234 for (int v = 0; v<5; ++v) {
dahooz 2:7900c18cebd5 235
dahooz 2:7900c18cebd5 236 for(int i=47; i>=0; i--) {
abuitrag 0:b738b4b05ed8 237 bpR=1;
abuitrag 0:b738b4b05ed8 238 bpL = 1;
dahooz 2:7900c18cebd5 239 for(int j = 0; j<sizeof(outp[0])/sizeof(outp[0][0]); j++) {
dahooz 2:7900c18cebd5 240 if (lookupLR(j)) {
abuitrag 0:b738b4b05ed8 241 actualrowR[lookupport(j)] = outp[i][j];
dahooz 2:7900c18cebd5 242 } else {
abuitrag 0:b738b4b05ed8 243 actualrowL[lookupport(j)] = outp[i][j];
abuitrag 0:b738b4b05ed8 244 }
abuitrag 0:b738b4b05ed8 245 }
dahooz 2:7900c18cebd5 246 for (int k =0; k<sizeof(actualrowR)/sizeof(actualrowR[0]); ++k) {
abuitrag 0:b738b4b05ed8 247 spiR.write(actualrowR[k]);
abuitrag 0:b738b4b05ed8 248 }
dahooz 2:7900c18cebd5 249 for (int k =0; k<sizeof(actualrowL)/sizeof(actualrowL[0]); ++k) {
dahooz 2:7900c18cebd5 250 spiL.write(actualrowL[k]);
dahooz 2:7900c18cebd5 251 }
dahooz 2:7900c18cebd5 252 latch();
dahooz 2:7900c18cebd5 253 bpR=0;
dahooz 2:7900c18cebd5 254 bpL = 0;
dahooz 2:7900c18cebd5 255 wait(0.08);
dahooz 2:7900c18cebd5 256 }
dahooz 2:7900c18cebd5 257 for(int i=0; i<sizeof(outp)/sizeof(outp[0]); i++) {
dahooz 2:7900c18cebd5 258 bpR=1;
dahooz 2:7900c18cebd5 259 bpL = 1;
dahooz 2:7900c18cebd5 260 for(int j = 0; j<sizeof(outp[0])/sizeof(outp[0][0]); j++) {
dahooz 2:7900c18cebd5 261 if (lookupLR(j)) {
dahooz 2:7900c18cebd5 262 actualrowR[lookupport(j)] = outp[i][j];
dahooz 2:7900c18cebd5 263 } else {
dahooz 2:7900c18cebd5 264 actualrowL[lookupport(j)] = outp[i][j];
dahooz 2:7900c18cebd5 265 }
dahooz 2:7900c18cebd5 266 }
dahooz 2:7900c18cebd5 267 for (int k =0; k<sizeof(actualrowR)/sizeof(actualrowR[0]); ++k) {
dahooz 2:7900c18cebd5 268 spiR.write(actualrowR[k]);
dahooz 2:7900c18cebd5 269 }
dahooz 2:7900c18cebd5 270 for (int k =0; k<sizeof(actualrowL)/sizeof(actualrowL[0]); ++k) {
abuitrag 0:b738b4b05ed8 271 spiL.write(actualrowL[k]);
abuitrag 0:b738b4b05ed8 272 }
abuitrag 0:b738b4b05ed8 273 latch();
abuitrag 0:b738b4b05ed8 274 bpR=0;
abuitrag 0:b738b4b05ed8 275 bpL = 0;
abuitrag 0:b738b4b05ed8 276 wait(0.08);
abuitrag 0:b738b4b05ed8 277 }
dahooz 2:7900c18cebd5 278
dahooz 2:7900c18cebd5 279 }
dahooz 2:7900c18cebd5 280
dahooz 2:7900c18cebd5 281 //****************************//
dahooz 2:7900c18cebd5 282 //CAKE FUNCTION - YUM YUM
dahooz 2:7900c18cebd5 283 //****************************//
dahooz 2:7900c18cebd5 284
dahooz 2:7900c18cebd5 285
dahooz 2:7900c18cebd5 286 {
dahooz 2:7900c18cebd5 287 in.mode(PullDown); // Set the pin to Pull Down mode.
dahooz 2:7900c18cebd5 288 in.rise(&flip); // Set up the interrupt for rising edge
dahooz 2:7900c18cebd5 289 t1.start(); // start the timer
dahooz 2:7900c18cebd5 290 t2.start();
dahooz 2:7900c18cebd5 291
dahooz 2:7900c18cebd5 292 for(; f<500;) { //as a placeholder until we find a way to navigate between programmes
dahooz 2:7900c18cebd5 293
dahooz 2:7900c18cebd5 294 if(t_period == 0) {
dahooz 2:7900c18cebd5 295 continue;
dahooz 2:7900c18cebd5 296 }
dahooz 2:7900c18cebd5 297 curt = t2.read_us();
dahooz 2:7900c18cebd5 298 if (curt < t_period/8
dahooz 2:7900c18cebd5 299 || (t_period/4 < curt && curt < (t_period/8)*3 )
dahooz 2:7900c18cebd5 300 || (t_period/2 < curt && curt < (t_period/8)*5 )
dahooz 2:7900c18cebd5 301 || ((t_period/4)*3 < curt && curt < (t_period/8)*7 )
dahooz 2:7900c18cebd5 302 ) {
dahooz 2:7900c18cebd5 303 if (last != 0) {
dahooz 2:7900c18cebd5 304 //cake empty
dahooz 2:7900c18cebd5 305
dahooz 2:7900c18cebd5 306 bpL=1;
dahooz 2:7900c18cebd5 307 bpR=1;
dahooz 2:7900c18cebd5 308 for (int j = 0; j<48; j++) {
dahooz 2:7900c18cebd5 309 spiR.write(0x000);
dahooz 2:7900c18cebd5 310 spiL.write(0x000);
dahooz 2:7900c18cebd5 311 }
dahooz 2:7900c18cebd5 312 //for(int j=0; j<sizeof(cakeempty)/sizeof(cakeempty[0]); j++) {
dahooz 2:7900c18cebd5 313 // spiR.write(cakeempty[j]);
dahooz 2:7900c18cebd5 314 //spiL.write(cakeempty[j]);
dahooz 2:7900c18cebd5 315 //}
dahooz 2:7900c18cebd5 316 latch();
dahooz 2:7900c18cebd5 317 bpL=0;
dahooz 2:7900c18cebd5 318 bpR=0;
dahooz 2:7900c18cebd5 319 last = 0;
dahooz 2:7900c18cebd5 320 }
dahooz 2:7900c18cebd5 321 } else {
dahooz 2:7900c18cebd5 322 if (last != 1) {
dahooz 2:7900c18cebd5 323
dahooz 2:7900c18cebd5 324 //cake full
dahooz 2:7900c18cebd5 325 bpL=1;
dahooz 2:7900c18cebd5 326 bpR=1;
dahooz 2:7900c18cebd5 327
dahooz 2:7900c18cebd5 328 for (int j = 0; j<48; j++) {
dahooz 2:7900c18cebd5 329 spiR.write(0xFFF);
dahooz 2:7900c18cebd5 330 spiL.write(0xFFF);
dahooz 2:7900c18cebd5 331 }
dahooz 2:7900c18cebd5 332
dahooz 2:7900c18cebd5 333 //for(int j=0; j<sizeof(cakefull)/sizeof(cakefull[0]); j++) {
dahooz 2:7900c18cebd5 334 // spiR.write(cakefull[j]);
dahooz 2:7900c18cebd5 335 //spiL.write(cakefull[j]);
dahooz 2:7900c18cebd5 336 //}
dahooz 2:7900c18cebd5 337 latch();
dahooz 2:7900c18cebd5 338 bpL=0;
dahooz 2:7900c18cebd5 339 bpR=0;
dahooz 2:7900c18cebd5 340 last = 1;
abuitrag 0:b738b4b05ed8 341 }
abuitrag 0:b738b4b05ed8 342 }
abuitrag 0:b738b4b05ed8 343
abuitrag 0:b738b4b05ed8 344 }
abuitrag 0:b738b4b05ed8 345
dahooz 2:7900c18cebd5 346
abuitrag 0:b738b4b05ed8 347 /*********************************/
abuitrag 0:b738b4b05ed8 348 // RADAR FUNCTION FUCK YEAH //
abuitrag 0:b738b4b05ed8 349 /**********************************/
dahooz 2:7900c18cebd5 350
dahooz 2:7900c18cebd5 351 f = 0;
dahooz 2:7900c18cebd5 352 in.mode(PullDown); // Set the pin to Pull Down mode.
dahooz 2:7900c18cebd5 353 in.rise(&flip); // Set up the interrupt for rising edge
dahooz 2:7900c18cebd5 354 t1.start(); // start the timer
dahooz 2:7900c18cebd5 355 t2.start();
dahooz 2:7900c18cebd5 356 //t3.start();
dahooz 2:7900c18cebd5 357
dahooz 2:7900c18cebd5 358 lpR = 0;
dahooz 2:7900c18cebd5 359 lpL = 0;
dahooz 2:7900c18cebd5 360 bpR=0;
dahooz 2:7900c18cebd5 361 bpL = 0;
abuitrag 0:b738b4b05ed8 362
dahooz 2:7900c18cebd5 363 for(; f<500;) {
dahooz 2:7900c18cebd5 364 bpL=1;
dahooz 2:7900c18cebd5 365 bpR=1;
dahooz 2:7900c18cebd5 366 for(j=0; j<sizeof(radaron)/sizeof(radaron[0]); j++) {
dahooz 2:7900c18cebd5 367 if(j%2==1) {
dahooz 2:7900c18cebd5 368 spiR.write(radaron[j]);
abuitrag 0:b738b4b05ed8 369 }
abuitrag 0:b738b4b05ed8 370 }
dahooz 2:7900c18cebd5 371 latch();
dahooz 2:7900c18cebd5 372 bpL=0;
dahooz 2:7900c18cebd5 373 bpR=0;
dahooz 2:7900c18cebd5 374 wait(0.15);
abuitrag 0:b738b4b05ed8 375
dahooz 2:7900c18cebd5 376 //right side off, left side on
dahooz 2:7900c18cebd5 377 //only if needed
dahooz 2:7900c18cebd5 378 bpL=1;
dahooz 2:7900c18cebd5 379 bpR=1;
dahooz 2:7900c18cebd5 380 for(j=0; j<sizeof(radaroff)/sizeof(radaroff[0]); j++) {
dahooz 2:7900c18cebd5 381 spiR.write(radaroff[j]);
dahooz 2:7900c18cebd5 382 }
dahooz 2:7900c18cebd5 383 bpL=0;
dahooz 2:7900c18cebd5 384 bpR=0;
dahooz 2:7900c18cebd5 385 wait(0.15);
dahooz 2:7900c18cebd5 386
dahooz 2:7900c18cebd5 387 //HERE COMES THE DOT, YO
abuitrag 0:b738b4b05ed8 388
dahooz 2:7900c18cebd5 389 bpL=1;
dahooz 2:7900c18cebd5 390 for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
dahooz 2:7900c18cebd5 391 spiL.write(radardot[j]);
dahooz 2:7900c18cebd5 392 }
dahooz 2:7900c18cebd5 393 latch();
dahooz 2:7900c18cebd5 394 bpL=0;
dahooz 2:7900c18cebd5 395 bpR=0;
dahooz 2:7900c18cebd5 396 wait(0.1);
dahooz 2:7900c18cebd5 397
dahooz 2:7900c18cebd5 398 bpL=1;
dahooz 2:7900c18cebd5 399 for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
dahooz 2:7900c18cebd5 400 spiL.write(radaroff[j]);
dahooz 2:7900c18cebd5 401 }
dahooz 2:7900c18cebd5 402 latch();
dahooz 2:7900c18cebd5 403 bpL=0;
dahooz 2:7900c18cebd5 404 bpR=0;
dahooz 2:7900c18cebd5 405 wait(0.1);
dahooz 2:7900c18cebd5 406
dahooz 2:7900c18cebd5 407 /*
dahooz 2:7900c18cebd5 408 if(t_period == 0) {
dahooz 2:7900c18cebd5 409 continue;
dahooz 2:7900c18cebd5 410 }*/
dahooz 2:7900c18cebd5 411
dahooz 2:7900c18cebd5 412
abuitrag 0:b738b4b05ed8 413
abuitrag 0:b738b4b05ed8 414
dahooz 2:7900c18cebd5 415 /* OLD FUNCTION
dahooz 2:7900c18cebd5 416 *
dahooz 2:7900c18cebd5 417 *
dahooz 2:7900c18cebd5 418
dahooz 2:7900c18cebd5 419 in.mode(PullDown); // Set the pin to Pull Down mode.
dahooz 2:7900c18cebd5 420 in.rise(&flip); // Set up the interrupt for rising edge
dahooz 2:7900c18cebd5 421 t1.start(); // start the timer
dahooz 2:7900c18cebd5 422 t2.start();
dahooz 2:7900c18cebd5 423 int a = 0;
dahooz 2:7900c18cebd5 424
dahooz 2:7900c18cebd5 425 while(1) { //as a placeholder until we find a way to navigate between programmes
dahooz 2:7900c18cebd5 426 a++;
dahooz 2:7900c18cebd5 427 if(t_period == 0) {
dahooz 2:7900c18cebd5 428 continue;
dahooz 2:7900c18cebd5 429 }
dahooz 2:7900c18cebd5 430 curt = t2.read_us();
dahooz 2:7900c18cebd5 431 if (curt !=t_period) {
dahooz 2:7900c18cebd5 432
dahooz 2:7900c18cebd5 433 } else {
dahooz 2:7900c18cebd5 434 if (last != 0) {
dahooz 2:7900c18cebd5 435 //cake empty
dahooz 2:7900c18cebd5 436
dahooz 2:7900c18cebd5 437 //HERE COMES THE DOT, YO
dahooz 2:7900c18cebd5 438
dahooz 2:7900c18cebd5 439 bpL=1;
dahooz 2:7900c18cebd5 440 for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
dahooz 2:7900c18cebd5 441 spiL.write(radardot[j]);
dahooz 2:7900c18cebd5 442 }
dahooz 2:7900c18cebd5 443 latch();
dahooz 2:7900c18cebd5 444 bpL=0;
dahooz 2:7900c18cebd5 445 bpR=0;
dahooz 2:7900c18cebd5 446 last = 0;
dahooz 2:7900c18cebd5 447 }
dahooz 2:7900c18cebd5 448 if (last != 1) {
dahooz 2:7900c18cebd5 449
dahooz 2:7900c18cebd5 450 bpL=1;
dahooz 2:7900c18cebd5 451 for(j=0; j<sizeof(radardot)/sizeof(radardot[0]); j++) {
dahooz 2:7900c18cebd5 452 spiL.write(radaroff[j]);
dahooz 2:7900c18cebd5 453 }
dahooz 2:7900c18cebd5 454 latch();
dahooz 2:7900c18cebd5 455 bpL=0;
dahooz 2:7900c18cebd5 456 bpR=0;
dahooz 2:7900c18cebd5 457 last = 1;
dahooz 2:7900c18cebd5 458 }
dahooz 2:7900c18cebd5 459 }
dahooz 2:7900c18cebd5 460 }
dahooz 2:7900c18cebd5 461 */
dahooz 2:7900c18cebd5 462
dahooz 2:7900c18cebd5 463
dahooz 2:7900c18cebd5 464
dahooz 2:7900c18cebd5 465 }
dahooz 2:7900c18cebd5 466
dahooz 2:7900c18cebd5 467
dahooz 2:7900c18cebd5 468
dahooz 2:7900c18cebd5 469 //Please notice that the wait times for the needle and the dot are different - THIS IS INTENDED
dahooz 2:7900c18cebd5 470
dahooz 2:7900c18cebd5 471
dahooz 2:7900c18cebd5 472 //radaron
dahooz 2:7900c18cebd5 473
dahooz 2:7900c18cebd5 474 /*for(x=0;x<20;x++){
dahooz 2:7900c18cebd5 475 bpL=1;
dahooz 2:7900c18cebd5 476 bpR=1;
dahooz 2:7900c18cebd5 477 for(j=0;j<sizeof(radaron)/sizeof(radaron[0]);j++){
dahooz 2:7900c18cebd5 478 spiR.write(radaron[j]);
dahooz 2:7900c18cebd5 479 }
dahooz 2:7900c18cebd5 480 latch();
dahooz 2:7900c18cebd5 481 bpL=0;
dahooz 2:7900c18cebd5 482 bpR=0;
dahooz 2:7900c18cebd5 483 wait(0.15);
dahooz 2:7900c18cebd5 484
dahooz 2:7900c18cebd5 485 //radaroff
dahooz 2:7900c18cebd5 486
dahooz 2:7900c18cebd5 487 bpL=1;
dahooz 2:7900c18cebd5 488 bpR=1;
dahooz 2:7900c18cebd5 489 for(j=0;j<sizeof(radaroff)/sizeof(radaroff[0]);j++){
dahooz 2:7900c18cebd5 490 spiR.write(radaroff[j]);
dahooz 2:7900c18cebd5 491 }
dahooz 2:7900c18cebd5 492 bpL=0;
dahooz 2:7900c18cebd5 493 bpR=0;
dahooz 2:7900c18cebd5 494 wait(0.15);
dahooz 2:7900c18cebd5 495
dahooz 2:7900c18cebd5 496 //HERE COMES THE DOT, YO
dahooz 2:7900c18cebd5 497
dahooz 2:7900c18cebd5 498 bpL=1;
dahooz 2:7900c18cebd5 499 for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
dahooz 2:7900c18cebd5 500 spiL.write(radardot[j]);
dahooz 2:7900c18cebd5 501 }
dahooz 2:7900c18cebd5 502 latch();
dahooz 2:7900c18cebd5 503 bpL=0;
dahooz 2:7900c18cebd5 504 bpR=0;
dahooz 2:7900c18cebd5 505 wait(0.1);
dahooz 2:7900c18cebd5 506
dahooz 2:7900c18cebd5 507 bpL=1;
dahooz 2:7900c18cebd5 508 for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
dahooz 2:7900c18cebd5 509 spiL.write(radaroff[j]);
dahooz 2:7900c18cebd5 510 }
dahooz 2:7900c18cebd5 511 latch();
dahooz 2:7900c18cebd5 512 bpL=0;
dahooz 2:7900c18cebd5 513 bpR=0;
dahooz 2:7900c18cebd5 514 wait(0.1);
dahooz 2:7900c18cebd5 515 }*/
dahooz 2:7900c18cebd5 516 }
dahooz 2:7900c18cebd5 517
dahooz 2:7900c18cebd5 518 }