Peter Scholtens
/
BitstreamGenerator
Generates a fixed pattern with constant output. Needed for debugging the SimpleDecimationFilter.
main.cpp@0:f9195b124694, 2015-05-27 (annotated)
- 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?
User | Revision | Line number | New 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 | } |