Generates a fixed pattern with constant output. Needed for debugging the SimpleDecimationFilter.

Dependencies:   FastIO mbed

Committer:
pscholtens
Date:
Wed May 27 09:33:12 2015 +0000
Revision:
0:f9195b124694
First version with constant output rate.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pscholtens 0:f9195b124694 1 #include "mbed.h"
pscholtens 0:f9195b124694 2 #include "FastIO.h"
pscholtens 0:f9195b124694 3
pscholtens 0:f9195b124694 4 //DigitalOut bitstream(p8);
pscholtens 0:f9195b124694 5 FastOut<p8> bitstream;
pscholtens 0:f9195b124694 6 DigitalOut myled(LED1);
pscholtens 0:f9195b124694 7
pscholtens 0:f9195b124694 8 Serial pc(USBTX, USBRX); // tx, rx
pscholtens 0:f9195b124694 9 Timer timer;
pscholtens 0:f9195b124694 10
pscholtens 0:f9195b124694 11 #define LOOP 1000000
pscholtens 0:f9195b124694 12
pscholtens 0:f9195b124694 13 int main() {
pscholtens 0:f9195b124694 14 int data[42];
pscholtens 0:f9195b124694 15 data[ 0] = 0;
pscholtens 0:f9195b124694 16 data[ 1] = 1;
pscholtens 0:f9195b124694 17 data[ 2] = 0;
pscholtens 0:f9195b124694 18 data[ 3] = 0;
pscholtens 0:f9195b124694 19 data[ 4] = 1;
pscholtens 0:f9195b124694 20 data[ 5] = 1;
pscholtens 0:f9195b124694 21 data[ 6] = 0;
pscholtens 0:f9195b124694 22 data[ 7] = 0;
pscholtens 0:f9195b124694 23 data[ 8] = 0;
pscholtens 0:f9195b124694 24 data[ 9] = 1;
pscholtens 0:f9195b124694 25 data[10] = 1;
pscholtens 0:f9195b124694 26 data[11] = 1;
pscholtens 0:f9195b124694 27 data[12] = 0;
pscholtens 0:f9195b124694 28 data[13] = 0;
pscholtens 0:f9195b124694 29 data[14] = 0;
pscholtens 0:f9195b124694 30 data[15] = 0;
pscholtens 0:f9195b124694 31 data[16] = 1;
pscholtens 0:f9195b124694 32 data[17] = 1;
pscholtens 0:f9195b124694 33 data[18] = 1;
pscholtens 0:f9195b124694 34 data[19] = 1;
pscholtens 0:f9195b124694 35 data[20] = 0;
pscholtens 0:f9195b124694 36 data[21] = 0;
pscholtens 0:f9195b124694 37 data[22] = 0;
pscholtens 0:f9195b124694 38 data[23] = 0;
pscholtens 0:f9195b124694 39 data[24] = 0;
pscholtens 0:f9195b124694 40 data[25] = 1;
pscholtens 0:f9195b124694 41 data[26] = 1;
pscholtens 0:f9195b124694 42 data[27] = 1;
pscholtens 0:f9195b124694 43 data[28] = 1;
pscholtens 0:f9195b124694 44 data[29] = 1;
pscholtens 0:f9195b124694 45 data[30] = 0;
pscholtens 0:f9195b124694 46 data[31] = 0;
pscholtens 0:f9195b124694 47 data[32] = 0;
pscholtens 0:f9195b124694 48 data[33] = 0;
pscholtens 0:f9195b124694 49 data[34] = 0;
pscholtens 0:f9195b124694 50 data[35] = 0;
pscholtens 0:f9195b124694 51 data[36] = 1;
pscholtens 0:f9195b124694 52 data[37] = 1;
pscholtens 0:f9195b124694 53 data[38] = 1;
pscholtens 0:f9195b124694 54 data[39] = 1;
pscholtens 0:f9195b124694 55 data[40] = 1;
pscholtens 0:f9195b124694 56 data[41] = 1;
pscholtens 0:f9195b124694 57 int index = 0;
pscholtens 0:f9195b124694 58 int dummy;
pscholtens 0:f9195b124694 59 int iter_incr = 1;
pscholtens 0:f9195b124694 60 float duration;
pscholtens 0:f9195b124694 61 pc.baud(115200);
pscholtens 0:f9195b124694 62 pc.printf("Start\n");
pscholtens 0:f9195b124694 63 timer.reset();
pscholtens 0:f9195b124694 64 timer.start();
pscholtens 0:f9195b124694 65 loop:
pscholtens 0:f9195b124694 66 for (int i = 0; i < LOOP; i+=iter_incr) {
pscholtens 0:f9195b124694 67 bitstream = data[index];
pscholtens 0:f9195b124694 68 index = (index+1)%42;
pscholtens 0:f9195b124694 69 /* Begin of useless calculation to force 1 MHz runtime */
pscholtens 0:f9195b124694 70 dummy = 3;
pscholtens 0:f9195b124694 71 for (int j = 0; j <51; j++) {
pscholtens 0:f9195b124694 72 dummy+=dummy;
pscholtens 0:f9195b124694 73 }
pscholtens 0:f9195b124694 74 /* End of useless calculation to force 1 MHz runtime */
pscholtens 0:f9195b124694 75 }
pscholtens 0:f9195b124694 76 timer.stop();
pscholtens 0:f9195b124694 77 duration = timer.read();
pscholtens 0:f9195b124694 78 pc.printf("Loop took %f seconds, %g per iteration\n",duration,duration/LOOP);
pscholtens 0:f9195b124694 79 /* After testing the speed of the loop during 1 second, now continu to run it forever. */
pscholtens 0:f9195b124694 80 iter_incr = 0;
pscholtens 0:f9195b124694 81 goto loop;
pscholtens 0:f9195b124694 82 }