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

Dependencies:   FastIO mbed

main.cpp

Committer:
pscholtens
Date:
2015-05-27
Revision:
0:f9195b124694

File content as of revision 0:f9195b124694:

#include "mbed.h"
#include "FastIO.h"

//DigitalOut bitstream(p8);
FastOut<p8> bitstream;
DigitalOut myled(LED1);

Serial     pc(USBTX, USBRX); // tx, rx
Timer      timer;

#define  LOOP 1000000

int main() {
    int data[42];
    data[ 0] = 0;
    data[ 1] = 1;
    data[ 2] = 0;
    data[ 3] = 0;
    data[ 4] = 1;
    data[ 5] = 1;
    data[ 6] = 0;
    data[ 7] = 0;
    data[ 8] = 0;
    data[ 9] = 1;
    data[10] = 1;
    data[11] = 1;
    data[12] = 0;
    data[13] = 0;
    data[14] = 0;
    data[15] = 0;
    data[16] = 1;
    data[17] = 1;
    data[18] = 1;
    data[19] = 1;
    data[20] = 0;
    data[21] = 0;
    data[22] = 0;
    data[23] = 0;
    data[24] = 0;
    data[25] = 1;
    data[26] = 1;
    data[27] = 1;
    data[28] = 1;
    data[29] = 1;
    data[30] = 0;
    data[31] = 0;
    data[32] = 0;
    data[33] = 0;
    data[34] = 0;
    data[35] = 0;
    data[36] = 1;
    data[37] = 1;
    data[38] = 1;
    data[39] = 1;
    data[40] = 1;
    data[41] = 1;
    int index = 0;
    int   dummy;
    int   iter_incr = 1;
    float duration;
    pc.baud(115200);
    pc.printf("Start\n");
    timer.reset();
    timer.start();
loop:
    for (int i = 0; i < LOOP; i+=iter_incr) {
        bitstream = data[index];
        index = (index+1)%42;
        /* Begin of useless calculation to force 1 MHz runtime */
        dummy = 3;
        for (int j = 0; j <51; j++) {
            dummy+=dummy;
        }
        /* End of useless calculation to force 1 MHz runtime */
    }
    timer.stop();
    duration = timer.read();
    pc.printf("Loop took %f seconds, %g per iteration\n",duration,duration/LOOP);
    /* After testing the speed of the loop during 1 second, now continu to run it forever. */
    iter_incr = 0;
    goto loop;
}