Erik -
/
FastIO_TestBench
Testbench for FastIO
Fork of FastIO by
main.cpp@1:8064f8b8cf82, 2010-05-22 (annotated)
- Committer:
- igorsk
- Date:
- Sat May 22 22:58:38 2010 +0000
- Revision:
- 1:8064f8b8cf82
- Parent:
- 0:f1e54c45ccaf
- Child:
- 3:8d217a0bb245
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
igorsk | 0:f1e54c45ccaf | 1 | #include "mbed.h" |
igorsk | 0:f1e54c45ccaf | 2 | |
igorsk | 1:8064f8b8cf82 | 3 | #include "FastIO.h" |
igorsk | 1:8064f8b8cf82 | 4 | |
igorsk | 1:8064f8b8cf82 | 5 | #define LED_MASK 0x07800000 |
igorsk | 0:f1e54c45ccaf | 6 | |
igorsk | 0:f1e54c45ccaf | 7 | DigitalOut led1(LED1); |
igorsk | 0:f1e54c45ccaf | 8 | FastOut<LED2> led2; |
igorsk | 1:8064f8b8cf82 | 9 | PortOut ledport(Port0, LED_MASK); |
igorsk | 1:8064f8b8cf82 | 10 | FastPortOut<Port0, LED_MASK> ledport2; |
igorsk | 0:f1e54c45ccaf | 11 | |
igorsk | 0:f1e54c45ccaf | 12 | Timer t; |
igorsk | 0:f1e54c45ccaf | 13 | #define LOOPS 100000000 |
igorsk | 0:f1e54c45ccaf | 14 | int main() { |
igorsk | 0:f1e54c45ccaf | 15 | int value = 0; |
igorsk | 0:f1e54c45ccaf | 16 | int count = LOOPS; |
igorsk | 0:f1e54c45ccaf | 17 | t.start(); |
igorsk | 0:f1e54c45ccaf | 18 | while ( count -- ) |
igorsk | 0:f1e54c45ccaf | 19 | { |
igorsk | 0:f1e54c45ccaf | 20 | led1.write(value); |
igorsk | 0:f1e54c45ccaf | 21 | value = 1-value; |
igorsk | 0:f1e54c45ccaf | 22 | } |
igorsk | 0:f1e54c45ccaf | 23 | t.stop(); |
igorsk | 0:f1e54c45ccaf | 24 | printf("DigitalOut: %f seconds (%d ns per iteration).\n", t.read(), t.read_us()/(LOOPS/1000)); |
igorsk | 1:8064f8b8cf82 | 25 | |
igorsk | 0:f1e54c45ccaf | 26 | count = LOOPS; |
igorsk | 0:f1e54c45ccaf | 27 | t.reset(); |
igorsk | 0:f1e54c45ccaf | 28 | t.start(); |
igorsk | 0:f1e54c45ccaf | 29 | while ( count -- ) |
igorsk | 0:f1e54c45ccaf | 30 | { |
igorsk | 0:f1e54c45ccaf | 31 | led2 = value; |
igorsk | 0:f1e54c45ccaf | 32 | value = 1-value; |
igorsk | 0:f1e54c45ccaf | 33 | } |
igorsk | 0:f1e54c45ccaf | 34 | t.stop(); |
igorsk | 0:f1e54c45ccaf | 35 | printf("FastOut: %f seconds (%d ns per iteration).\n", t.read(), t.read_us()/(LOOPS/1000)); |
igorsk | 1:8064f8b8cf82 | 36 | |
igorsk | 1:8064f8b8cf82 | 37 | count = LOOPS; |
igorsk | 1:8064f8b8cf82 | 38 | t.reset(); |
igorsk | 1:8064f8b8cf82 | 39 | t.start(); |
igorsk | 1:8064f8b8cf82 | 40 | value = LED_MASK; |
igorsk | 1:8064f8b8cf82 | 41 | while ( count -- ) |
igorsk | 1:8064f8b8cf82 | 42 | { |
igorsk | 1:8064f8b8cf82 | 43 | ledport.write(value); |
igorsk | 1:8064f8b8cf82 | 44 | value ^= LED_MASK; |
igorsk | 1:8064f8b8cf82 | 45 | } |
igorsk | 1:8064f8b8cf82 | 46 | t.stop(); |
igorsk | 1:8064f8b8cf82 | 47 | printf("PortOut: %f seconds (%d ns per iteration).\n", t.read(), t.read_us()/(LOOPS/1000)); |
igorsk | 1:8064f8b8cf82 | 48 | |
igorsk | 1:8064f8b8cf82 | 49 | count = LOOPS; |
igorsk | 1:8064f8b8cf82 | 50 | t.reset(); |
igorsk | 1:8064f8b8cf82 | 51 | t.start(); |
igorsk | 1:8064f8b8cf82 | 52 | value = LED_MASK; |
igorsk | 1:8064f8b8cf82 | 53 | while ( count -- ) |
igorsk | 1:8064f8b8cf82 | 54 | { |
igorsk | 1:8064f8b8cf82 | 55 | ledport2 = value; |
igorsk | 1:8064f8b8cf82 | 56 | value ^= LED_MASK; |
igorsk | 1:8064f8b8cf82 | 57 | } |
igorsk | 1:8064f8b8cf82 | 58 | t.stop(); |
igorsk | 1:8064f8b8cf82 | 59 | printf("FastPortOut: %f seconds (%d ns per iteration).\n", t.read(), t.read_us()/(LOOPS/1000)); |
igorsk | 0:f1e54c45ccaf | 60 | } |