Rotorhead / Mbed 2 deprecated MainMitFreq

Dependencies:   mbed

Committer:
abuitrag
Date:
Mon Jun 23 16:36:02 2014 +0000
Revision:
1:c3ba9212f103
Parent:
0:b738b4b05ed8
Child:
2:7900c18cebd5
now new with z?hler;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
abuitrag 0:b738b4b05ed8 1 #include "mbed.h"
abuitrag 0:b738b4b05ed8 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);
abuitrag 0:b738b4b05ed8 6
abuitrag 0:b738b4b05ed8 7 SPI spiL(p5, p6, p7);
abuitrag 0:b738b4b05ed8 8 DigitalOut lpL(p8);
abuitrag 0:b738b4b05ed8 9 DigitalOut bpL(p9);
abuitrag 0:b738b4b05ed8 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 }
abuitrag 0:b738b4b05ed8 22
abuitrag 0:b738b4b05ed8 23
abuitrag 0:b738b4b05ed8 24
abuitrag 0:b738b4b05ed8 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);
abuitrag 0:b738b4b05ed8 35
abuitrag 0:b738b4b05ed8 36 //RUNTIME VARS
abuitrag 0:b738b4b05ed8 37
abuitrag 0:b738b4b05ed8 38 int t_period = 0; // This is the period between interrupts in microseconds
abuitrag 0:b738b4b05ed8 39 float t_freq = 0;
abuitrag 0:b738b4b05ed8 40 int last = -1;
abuitrag 0:b738b4b05ed8 41 int curt = 0;
abuitrag 0:b738b4b05ed8 42
abuitrag 0:b738b4b05ed8 43 //DUMMY FUNCTION AS THERE IS NO HEADER FILE
abuitrag 0:b738b4b05ed8 44
abuitrag 0:b738b4b05ed8 45 void flip();
abuitrag 0:b738b4b05ed8 46 void flip()
abuitrag 0:b738b4b05ed8 47 {
abuitrag 0:b738b4b05ed8 48 t_period = t1.read_us(); // Get time since last interrupt
abuitrag 0:b738b4b05ed8 49 t_freq = (1/(float)t_period)*1000000; // Convert period (in us) to frequency (Hz)
abuitrag 0:b738b4b05ed8 50 t1.reset(); // Reset timer and wait for next interrupt
abuitrag 0:b738b4b05ed8 51 t2.reset();
abuitrag 0:b738b4b05ed8 52 led = !led;
abuitrag 0:b738b4b05ed8 53 }
abuitrag 0:b738b4b05ed8 54
abuitrag 0:b738b4b05ed8 55 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},
abuitrag 0:b738b4b05ed8 56 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
abuitrag 0:b738b4b05ed8 57 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
abuitrag 0:b738b4b05ed8 58 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
abuitrag 0:b738b4b05ed8 59 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
abuitrag 0:b738b4b05ed8 60 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 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,0xFFF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
abuitrag 0:b738b4b05ed8 79 {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},
abuitrag 0:b738b4b05ed8 80 {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},
abuitrag 0:b738b4b05ed8 81 {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},
abuitrag 0:b738b4b05ed8 82 {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},
abuitrag 0:b738b4b05ed8 83 {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},
abuitrag 0:b738b4b05ed8 84 {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},
abuitrag 0:b738b4b05ed8 85 {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},
abuitrag 0:b738b4b05ed8 86 {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},
abuitrag 0:b738b4b05ed8 87 {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},
abuitrag 0:b738b4b05ed8 88 {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},
abuitrag 0:b738b4b05ed8 89 {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},
abuitrag 0:b738b4b05ed8 90 {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},
abuitrag 0:b738b4b05ed8 91 {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},
abuitrag 0:b738b4b05ed8 92 {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},
abuitrag 0:b738b4b05ed8 93 {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},
abuitrag 0:b738b4b05ed8 94 {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},
abuitrag 0:b738b4b05ed8 95 {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},
abuitrag 0:b738b4b05ed8 96 {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},
abuitrag 0:b738b4b05ed8 97 {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},
abuitrag 0:b738b4b05ed8 98 {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},
abuitrag 0:b738b4b05ed8 99 {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},
abuitrag 0:b738b4b05ed8 100 {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},
abuitrag 0:b738b4b05ed8 101 {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},
abuitrag 0:b738b4b05ed8 102 {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}, };
abuitrag 0:b738b4b05ed8 103
abuitrag 0:b738b4b05ed8 104 //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};
abuitrag 0:b738b4b05ed8 105 //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};
abuitrag 0:b738b4b05ed8 106 int x,j;
abuitrag 0:b738b4b05ed8 107
abuitrag 0:b738b4b05ed8 108 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};
abuitrag 0:b738b4b05ed8 109 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};
abuitrag 0:b738b4b05ed8 110
abuitrag 0:b738b4b05ed8 111 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};
abuitrag 0:b738b4b05ed8 112 short cakefull[24]={0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,
abuitrag 0:b738b4b05ed8 113 0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF};
abuitrag 0:b738b4b05ed8 114
abuitrag 0:b738b4b05ed8 115 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};
abuitrag 0:b738b4b05ed8 116 short radaron[24]={0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,
abuitrag 0:b738b4b05ed8 117 0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF,0xFFF};
abuitrag 0:b738b4b05ed8 118 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};
abuitrag 0:b738b4b05ed8 119
abuitrag 0:b738b4b05ed8 120 int lookupport(int j)
abuitrag 0:b738b4b05ed8 121 {
abuitrag 0:b738b4b05ed8 122 int led, p;
abuitrag 0:b738b4b05ed8 123
abuitrag 0:b738b4b05ed8 124 if(j%2 == 1) //Alle ungeradezahligen Ports
abuitrag 0:b738b4b05ed8 125 //werden vom rechten Controller angesteuert
abuitrag 0:b738b4b05ed8 126 //entsprechend wird "R" als "Side" zugewiesen
abuitrag 0:b738b4b05ed8 127 {
abuitrag 0:b738b4b05ed8 128
abuitrag 0:b738b4b05ed8 129 p = j/2; //Durch Division /2 bekommen wir eine "normierte Reihe" also (0,1 ,2 ... 12)
abuitrag 0:b738b4b05ed8 130
abuitrag 0:b738b4b05ed8 131 if (p%2 == 0) //nochmal %2 da Ports sich abwechseln (0, 23, 1, 22... siehe Tabelle)
abuitrag 0:b738b4b05ed8 132 led = 23 - (p/2); //also von "p" ausgegangen, beginnen gerade Zahlen von hinten an (Ports 23, 22, 21... 12)
abuitrag 0:b738b4b05ed8 133 else
abuitrag 0:b738b4b05ed8 134 led = (p/2); // ungerade Zahlen beginnen von vorne an (Port 0, 1, 2... 11)
abuitrag 0:b738b4b05ed8 135 }
abuitrag 0:b738b4b05ed8 136
abuitrag 0:b738b4b05ed8 137 else
abuitrag 0:b738b4b05ed8 138
abuitrag 0:b738b4b05ed8 139 {
abuitrag 0:b738b4b05ed8 140 p = (j-1)/2;
abuitrag 0:b738b4b05ed8 141
abuitrag 0:b738b4b05ed8 142 if (p%2 == 0)
abuitrag 0:b738b4b05ed8 143 led = 23 - (p/2);
abuitrag 0:b738b4b05ed8 144 else
abuitrag 0:b738b4b05ed8 145 led = (p/2);
abuitrag 0:b738b4b05ed8 146 }
abuitrag 0:b738b4b05ed8 147 return led;
abuitrag 0:b738b4b05ed8 148
abuitrag 0:b738b4b05ed8 149 }
abuitrag 0:b738b4b05ed8 150
abuitrag 0:b738b4b05ed8 151 //returns 1 if right Port, else 0
abuitrag 0:b738b4b05ed8 152 int lookupLR(int j){
abuitrag 0:b738b4b05ed8 153 return j % 2;
abuitrag 0:b738b4b05ed8 154 }
abuitrag 0:b738b4b05ed8 155
abuitrag 0:b738b4b05ed8 156 //Hier kommt die Funktion
abuitrag 0:b738b4b05ed8 157
abuitrag 0:b738b4b05ed8 158
abuitrag 0:b738b4b05ed8 159 int main()
abuitrag 0:b738b4b05ed8 160 {
abuitrag 0:b738b4b05ed8 161
abuitrag 0:b738b4b05ed8 162 lpR = 0;
abuitrag 0:b738b4b05ed8 163 lpL = 0;
abuitrag 0:b738b4b05ed8 164 spiR.format(12, 0);
abuitrag 0:b738b4b05ed8 165 spiR.frequency(30 * 1000 * 1000);
abuitrag 0:b738b4b05ed8 166 spiL.format(12, 0);
abuitrag 0:b738b4b05ed8 167 spiL.frequency(30 * 1000 * 1000);
abuitrag 0:b738b4b05ed8 168 bpR=0;
abuitrag 0:b738b4b05ed8 169 bpL = 0;
abuitrag 0:b738b4b05ed8 170
abuitrag 0:b738b4b05ed8 171
abuitrag 0:b738b4b05ed8 172
abuitrag 0:b738b4b05ed8 173
abuitrag 0:b738b4b05ed8 174
abuitrag 0:b738b4b05ed8 175 for(x=0;x<2;x++) {
abuitrag 0:b738b4b05ed8 176
abuitrag 0:b738b4b05ed8 177 for(int i=47;i>=0;i--){
abuitrag 0:b738b4b05ed8 178 bpR=1;
abuitrag 0:b738b4b05ed8 179 bpL = 1;
abuitrag 0:b738b4b05ed8 180 for(int j = 0;j<sizeof(outp[0])/sizeof(outp[0][0]);j++){
abuitrag 0:b738b4b05ed8 181 if (lookupLR(j)){
abuitrag 0:b738b4b05ed8 182 actualrowR[lookupport(j)] = outp[i][j];
abuitrag 0:b738b4b05ed8 183 }else{
abuitrag 0:b738b4b05ed8 184 actualrowL[lookupport(j)] = outp[i][j];
abuitrag 0:b738b4b05ed8 185 }
abuitrag 0:b738b4b05ed8 186 }
abuitrag 0:b738b4b05ed8 187 for (int k =0; k<sizeof(actualrowR)/sizeof(actualrowR[0]);++k){
abuitrag 0:b738b4b05ed8 188 spiR.write(actualrowR[k]);
abuitrag 0:b738b4b05ed8 189 }
abuitrag 0:b738b4b05ed8 190 for (int k =0; k<sizeof(actualrowL)/sizeof(actualrowL[0]);++k){
abuitrag 0:b738b4b05ed8 191 spiL.write(actualrowL[k]);
abuitrag 0:b738b4b05ed8 192 }
abuitrag 0:b738b4b05ed8 193 latch();
abuitrag 0:b738b4b05ed8 194 bpR=0;
abuitrag 0:b738b4b05ed8 195 bpL = 0;
abuitrag 0:b738b4b05ed8 196 wait(0.08);
abuitrag 0:b738b4b05ed8 197 }
abuitrag 0:b738b4b05ed8 198 for(int i=0;i<sizeof(outp)/sizeof(outp[0]);i++){
abuitrag 0:b738b4b05ed8 199 bpR=1;
abuitrag 0:b738b4b05ed8 200 bpL = 1;
abuitrag 0:b738b4b05ed8 201 for(int j = 0;j<sizeof(outp[0])/sizeof(outp[0][0]);j++){
abuitrag 0:b738b4b05ed8 202 if (lookupLR(j)){
abuitrag 0:b738b4b05ed8 203 actualrowR[lookupport(j)] = outp[i][j];
abuitrag 0:b738b4b05ed8 204 }else{
abuitrag 0:b738b4b05ed8 205 actualrowL[lookupport(j)] = outp[i][j];
abuitrag 0:b738b4b05ed8 206 }
abuitrag 0:b738b4b05ed8 207 }
abuitrag 0:b738b4b05ed8 208 for (int k =0; k<sizeof(actualrowR)/sizeof(actualrowR[0]);++k){
abuitrag 0:b738b4b05ed8 209 spiR.write(actualrowR[k]);
abuitrag 0:b738b4b05ed8 210 }
abuitrag 0:b738b4b05ed8 211 for (int k =0; k<sizeof(actualrowL)/sizeof(actualrowL[0]);++k){
abuitrag 0:b738b4b05ed8 212 spiL.write(actualrowL[k]);
abuitrag 0:b738b4b05ed8 213 }
abuitrag 0:b738b4b05ed8 214 latch();
abuitrag 0:b738b4b05ed8 215 bpR=0;
abuitrag 0:b738b4b05ed8 216 bpL = 0;
abuitrag 0:b738b4b05ed8 217 wait(0.08);
abuitrag 0:b738b4b05ed8 218 }
abuitrag 0:b738b4b05ed8 219
abuitrag 0:b738b4b05ed8 220 }
abuitrag 0:b738b4b05ed8 221
abuitrag 0:b738b4b05ed8 222 //****************************//
abuitrag 0:b738b4b05ed8 223 //CAKE FUNCTION - YUM YUM
abuitrag 0:b738b4b05ed8 224 //****************************//
abuitrag 0:b738b4b05ed8 225
abuitrag 0:b738b4b05ed8 226
abuitrag 0:b738b4b05ed8 227
abuitrag 0:b738b4b05ed8 228 {
abuitrag 0:b738b4b05ed8 229 in.mode(PullDown); // Set the pin to Pull Down mode.
abuitrag 0:b738b4b05ed8 230 in.rise(&flip); // Set up the interrupt for rising edge
abuitrag 0:b738b4b05ed8 231 t1.start(); // start the timer
abuitrag 0:b738b4b05ed8 232 t2.start();
abuitrag 0:b738b4b05ed8 233 int a = 0;
abuitrag 0:b738b4b05ed8 234
abuitrag 0:b738b4b05ed8 235 while(a<40) { //as a placeholder until we find a way to navigate between programmes
abuitrag 0:b738b4b05ed8 236 a++;
abuitrag 0:b738b4b05ed8 237 if(t_period == 0) {
abuitrag 0:b738b4b05ed8 238 continue;
abuitrag 0:b738b4b05ed8 239 }
abuitrag 0:b738b4b05ed8 240 curt = t2.read_us();
abuitrag 0:b738b4b05ed8 241 if (curt < t_period/8
abuitrag 0:b738b4b05ed8 242 || (t_period/4 < curt && curt < (t_period/8)*3 )
abuitrag 0:b738b4b05ed8 243 || (t_period/2 < curt && curt < (t_period/8)*5 )
abuitrag 0:b738b4b05ed8 244 || ((t_period/4)*3 < curt && curt < (t_period/8)*7 )
abuitrag 0:b738b4b05ed8 245 ) {
abuitrag 0:b738b4b05ed8 246
abuitrag 0:b738b4b05ed8 247 } else {
abuitrag 0:b738b4b05ed8 248 if (last != 0) {
abuitrag 0:b738b4b05ed8 249 //cake empty
abuitrag 0:b738b4b05ed8 250
abuitrag 0:b738b4b05ed8 251 bpL=1;
abuitrag 0:b738b4b05ed8 252 bpR=1;
abuitrag 0:b738b4b05ed8 253 for (int j = 0; j<48; j++){
abuitrag 0:b738b4b05ed8 254 spiR.write(0x000);
abuitrag 0:b738b4b05ed8 255 spiL.write(0x000);
abuitrag 0:b738b4b05ed8 256 }
abuitrag 0:b738b4b05ed8 257 //for(int j=0; j<sizeof(cakeempty)/sizeof(cakeempty[0]); j++) {
abuitrag 0:b738b4b05ed8 258 // spiR.write(cakeempty[j]);
abuitrag 0:b738b4b05ed8 259 //spiL.write(cakeempty[j]);
abuitrag 0:b738b4b05ed8 260 //}
abuitrag 0:b738b4b05ed8 261 latch();
abuitrag 0:b738b4b05ed8 262 bpL=0;
abuitrag 0:b738b4b05ed8 263 bpR=0;
abuitrag 0:b738b4b05ed8 264 last = 0;
abuitrag 0:b738b4b05ed8 265 }
abuitrag 0:b738b4b05ed8 266 if (last != 1) {
abuitrag 0:b738b4b05ed8 267
abuitrag 0:b738b4b05ed8 268 //cake full
abuitrag 0:b738b4b05ed8 269 bpL=1;
abuitrag 0:b738b4b05ed8 270 bpR=1;
abuitrag 0:b738b4b05ed8 271
abuitrag 0:b738b4b05ed8 272 for (int j = 0; j<48; j++){
abuitrag 0:b738b4b05ed8 273 spiR.write(0x00F);
abuitrag 0:b738b4b05ed8 274 spiL.write(0x00F);
abuitrag 0:b738b4b05ed8 275 }
abuitrag 0:b738b4b05ed8 276
abuitrag 0:b738b4b05ed8 277 //for(int j=0; j<sizeof(cakefull)/sizeof(cakefull[0]); j++) {
abuitrag 0:b738b4b05ed8 278 // spiR.write(cakefull[j]);
abuitrag 0:b738b4b05ed8 279 //spiL.write(cakefull[j]);
abuitrag 0:b738b4b05ed8 280 //}
abuitrag 0:b738b4b05ed8 281 latch();
abuitrag 0:b738b4b05ed8 282 bpL=0;
abuitrag 0:b738b4b05ed8 283 bpR=0;
abuitrag 0:b738b4b05ed8 284 last = 1;
abuitrag 0:b738b4b05ed8 285 }
abuitrag 0:b738b4b05ed8 286 }
abuitrag 1:c3ba9212f103 287 bpL=1;
abuitrag 1:c3ba9212f103 288 bpR=1;
abuitrag 1:c3ba9212f103 289 for(j=0;j<sizeof(radaron)/sizeof(radaron[0]);j++){
abuitrag 1:c3ba9212f103 290 spiR.write(radaron[j]);
abuitrag 1:c3ba9212f103 291 }
abuitrag 1:c3ba9212f103 292 latch();
abuitrag 1:c3ba9212f103 293 bpL=0;
abuitrag 1:c3ba9212f103 294 bpR=0;
abuitrag 1:c3ba9212f103 295 wait(0.05); //tentative wait value
abuitrag 1:c3ba9212f103 296
abuitrag 1:c3ba9212f103 297 //right side off
abuitrag 1:c3ba9212f103 298 bpL=1;
abuitrag 1:c3ba9212f103 299 bpR=1;
abuitrag 1:c3ba9212f103 300 for(j=0;j<sizeof(radaroff)/sizeof(radaroff[0]);j++){
abuitrag 1:c3ba9212f103 301 spiR.write(radaroff[j]);
abuitrag 1:c3ba9212f103 302 }
abuitrag 1:c3ba9212f103 303 bpL=0;
abuitrag 1:c3ba9212f103 304 bpR=0;
abuitrag 1:c3ba9212f103 305 wait(t_period+0.05); //tentative additional wait value
abuitrag 0:b738b4b05ed8 306 }
abuitrag 0:b738b4b05ed8 307
abuitrag 0:b738b4b05ed8 308 }
abuitrag 0:b738b4b05ed8 309
abuitrag 0:b738b4b05ed8 310
abuitrag 0:b738b4b05ed8 311 /*********************************/
abuitrag 0:b738b4b05ed8 312 // RADAR FUNCTION FUCK YEAH //
abuitrag 0:b738b4b05ed8 313 /**********************************/
abuitrag 0:b738b4b05ed8 314
abuitrag 0:b738b4b05ed8 315
abuitrag 0:b738b4b05ed8 316 {
abuitrag 0:b738b4b05ed8 317 in.mode(PullDown); // Set the pin to Pull Down mode.
abuitrag 0:b738b4b05ed8 318 in.rise(&flip); // Set up the interrupt for rising edge
abuitrag 0:b738b4b05ed8 319 t1.start(); // start the timer
abuitrag 0:b738b4b05ed8 320 t2.start();
abuitrag 0:b738b4b05ed8 321 int a = 0;
abuitrag 0:b738b4b05ed8 322
abuitrag 0:b738b4b05ed8 323 while(a<40) { //as a placeholder until we find a way to navigate between programmes
abuitrag 0:b738b4b05ed8 324 a++;
abuitrag 0:b738b4b05ed8 325 if(t_period == 0) {
abuitrag 0:b738b4b05ed8 326 continue;
abuitrag 0:b738b4b05ed8 327 }
abuitrag 0:b738b4b05ed8 328 curt = t2.read_us();
abuitrag 0:b738b4b05ed8 329 if (curt !=t_period)
abuitrag 0:b738b4b05ed8 330 {
abuitrag 0:b738b4b05ed8 331
abuitrag 0:b738b4b05ed8 332 } else {
abuitrag 0:b738b4b05ed8 333 if (last != 0) {
abuitrag 0:b738b4b05ed8 334 //cake empty
abuitrag 0:b738b4b05ed8 335
abuitrag 0:b738b4b05ed8 336 //HERE COMES THE DOT, YO
abuitrag 0:b738b4b05ed8 337
abuitrag 0:b738b4b05ed8 338 bpL=1;
abuitrag 0:b738b4b05ed8 339 for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
abuitrag 0:b738b4b05ed8 340 spiL.write(radardot[j]);
abuitrag 0:b738b4b05ed8 341 }
abuitrag 0:b738b4b05ed8 342 latch();
abuitrag 0:b738b4b05ed8 343 bpL=0;
abuitrag 0:b738b4b05ed8 344 bpR=0;
abuitrag 0:b738b4b05ed8 345 last = 0;
abuitrag 0:b738b4b05ed8 346 }
abuitrag 0:b738b4b05ed8 347 if (last != 1) {
abuitrag 0:b738b4b05ed8 348
abuitrag 0:b738b4b05ed8 349 bpL=1;
abuitrag 0:b738b4b05ed8 350 for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
abuitrag 0:b738b4b05ed8 351 spiL.write(radaroff[j]);
abuitrag 0:b738b4b05ed8 352 }
abuitrag 0:b738b4b05ed8 353 latch();
abuitrag 0:b738b4b05ed8 354 bpL=0;
abuitrag 0:b738b4b05ed8 355 bpR=0;
abuitrag 0:b738b4b05ed8 356 last = 1;
abuitrag 0:b738b4b05ed8 357 }
abuitrag 0:b738b4b05ed8 358 }
abuitrag 0:b738b4b05ed8 359 }
abuitrag 0:b738b4b05ed8 360
abuitrag 0:b738b4b05ed8 361 }
abuitrag 0:b738b4b05ed8 362
abuitrag 0:b738b4b05ed8 363
abuitrag 0:b738b4b05ed8 364
abuitrag 0:b738b4b05ed8 365 //Please notice that the wait times for the needle and the dot are different - THIS IS INTENDED
abuitrag 0:b738b4b05ed8 366
abuitrag 0:b738b4b05ed8 367
abuitrag 0:b738b4b05ed8 368 //radaron
abuitrag 0:b738b4b05ed8 369
abuitrag 0:b738b4b05ed8 370 /*for(x=0;x<20;x++){
abuitrag 0:b738b4b05ed8 371 bpL=1;
abuitrag 0:b738b4b05ed8 372 bpR=1;
abuitrag 0:b738b4b05ed8 373 for(j=0;j<sizeof(radaron)/sizeof(radaron[0]);j++){
abuitrag 0:b738b4b05ed8 374 spiR.write(radaron[j]);
abuitrag 0:b738b4b05ed8 375 }
abuitrag 0:b738b4b05ed8 376 latch();
abuitrag 0:b738b4b05ed8 377 bpL=0;
abuitrag 0:b738b4b05ed8 378 bpR=0;
abuitrag 0:b738b4b05ed8 379 wait(0.15);
abuitrag 0:b738b4b05ed8 380
abuitrag 0:b738b4b05ed8 381 //radaroff
abuitrag 0:b738b4b05ed8 382
abuitrag 0:b738b4b05ed8 383 bpL=1;
abuitrag 0:b738b4b05ed8 384 bpR=1;
abuitrag 0:b738b4b05ed8 385 for(j=0;j<sizeof(radaroff)/sizeof(radaroff[0]);j++){
abuitrag 0:b738b4b05ed8 386 spiR.write(radaroff[j]);
abuitrag 0:b738b4b05ed8 387 }
abuitrag 0:b738b4b05ed8 388 bpL=0;
abuitrag 0:b738b4b05ed8 389 bpR=0;
abuitrag 0:b738b4b05ed8 390 wait(0.15);
abuitrag 0:b738b4b05ed8 391
abuitrag 0:b738b4b05ed8 392 //HERE COMES THE DOT, YO
abuitrag 0:b738b4b05ed8 393
abuitrag 0:b738b4b05ed8 394 bpL=1;
abuitrag 0:b738b4b05ed8 395 for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
abuitrag 0:b738b4b05ed8 396 spiL.write(radardot[j]);
abuitrag 0:b738b4b05ed8 397 }
abuitrag 0:b738b4b05ed8 398 latch();
abuitrag 0:b738b4b05ed8 399 bpL=0;
abuitrag 0:b738b4b05ed8 400 bpR=0;
abuitrag 0:b738b4b05ed8 401 wait(0.1);
abuitrag 0:b738b4b05ed8 402
abuitrag 0:b738b4b05ed8 403 bpL=1;
abuitrag 0:b738b4b05ed8 404 for(j=0;j<sizeof(radardot)/sizeof(radardot[0]);j++){
abuitrag 0:b738b4b05ed8 405 spiL.write(radaroff[j]);
abuitrag 0:b738b4b05ed8 406 }
abuitrag 0:b738b4b05ed8 407 latch();
abuitrag 0:b738b4b05ed8 408 bpL=0;
abuitrag 0:b738b4b05ed8 409 bpR=0;
abuitrag 0:b738b4b05ed8 410 wait(0.1);
abuitrag 0:b738b4b05ed8 411 }*/
abuitrag 0:b738b4b05ed8 412
abuitrag 0:b738b4b05ed8 413
abuitrag 0:b738b4b05ed8 414 }