Masahiro Furukawa
/
Binary_Serial_Test
binary out test
main.cpp@1:4c8086e3045d, 2018-08-07 (annotated)
- Committer:
- mfurukawa
- Date:
- Tue Aug 07 00:10:40 2018 +0000
- Revision:
- 1:4c8086e3045d
- Parent:
- 0:33eee66305ae
binary stable (2ch, 6byte+2byteCR+LF);
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mfurukawa | 0:33eee66305ae | 1 | #include "mbed.h" |
mfurukawa | 0:33eee66305ae | 2 | |
mfurukawa | 1:4c8086e3045d | 3 | #define SampleFreq 1000 // [Hz] |
mfurukawa | 0:33eee66305ae | 4 | |
mfurukawa | 0:33eee66305ae | 5 | // define serial objects |
mfurukawa | 0:33eee66305ae | 6 | Serial pc(USBTX, USBRX); |
mfurukawa | 0:33eee66305ae | 7 | |
mfurukawa | 0:33eee66305ae | 8 | DigitalOut myled(LED1); |
mfurukawa | 0:33eee66305ae | 9 | |
mfurukawa | 0:33eee66305ae | 10 | Ticker ticker; |
mfurukawa | 0:33eee66305ae | 11 | Timer timer; |
mfurukawa | 0:33eee66305ae | 12 | |
mfurukawa | 0:33eee66305ae | 13 | unsigned int usCycle = 1000000/SampleFreq ; |
mfurukawa | 0:33eee66305ae | 14 | uint8_t dummy_code[6] = {0x01, 0x02, 0xF3, 0xF4, 0x85, 0x86} ; |
mfurukawa | 0:33eee66305ae | 15 | uint8_t u8buf[6]; |
mfurukawa | 1:4c8086e3045d | 16 | uint16_t u16val[3]; |
mfurukawa | 0:33eee66305ae | 17 | |
mfurukawa | 0:33eee66305ae | 18 | void eventFunc(void) |
mfurukawa | 0:33eee66305ae | 19 | {// |
mfurukawa | 0:33eee66305ae | 20 | // timer.reset(); |
mfurukawa | 0:33eee66305ae | 21 | // timer.start(); |
mfurukawa | 0:33eee66305ae | 22 | |
mfurukawa | 0:33eee66305ae | 23 | // limitation on sending bytes at 921600bps - 92bits(under 100us/sample) |
mfurukawa | 0:33eee66305ae | 24 | // requirement : 1kHz sampling |
mfurukawa | 0:33eee66305ae | 25 | // = 921.5 bits/sample |
mfurukawa | 0:33eee66305ae | 26 | // = 115.1 bytes/sample |
mfurukawa | 0:33eee66305ae | 27 | // = 12.7 bytes/axis(9dof, including delimeter) each data uses float type value, equals to 4 bytes as binary description |
mfurukawa | 0:33eee66305ae | 28 | |
mfurukawa | 0:33eee66305ae | 29 | //fwrite(u8buf, sizeof(uint8_t), 6, stdout); |
mfurukawa | 1:4c8086e3045d | 30 | |
mfurukawa | 1:4c8086e3045d | 31 | u16val[2]++; |
mfurukawa | 1:4c8086e3045d | 32 | |
mfurukawa | 1:4c8086e3045d | 33 | for ( int i = 0; i < 3; i++ ){ |
mfurukawa | 1:4c8086e3045d | 34 | dummy_code[i*2 ] = 0xFF & ( u16val[i] >> 8 ); // High Byte |
mfurukawa | 1:4c8086e3045d | 35 | dummy_code[i*2+1] = 0xFF & ( u16val[i] ); // Low Byte |
mfurukawa | 1:4c8086e3045d | 36 | } |
mfurukawa | 0:33eee66305ae | 37 | for(int i=0;i<6;i++) |
mfurukawa | 0:33eee66305ae | 38 | putc(dummy_code[i], stdout); |
mfurukawa | 0:33eee66305ae | 39 | |
mfurukawa | 0:33eee66305ae | 40 | // terminator for ascii sending only // |
mfurukawa | 0:33eee66305ae | 41 | printf("\r\n"); |
mfurukawa | 0:33eee66305ae | 42 | } |
mfurukawa | 0:33eee66305ae | 43 | |
mfurukawa | 0:33eee66305ae | 44 | int main() |
mfurukawa | 0:33eee66305ae | 45 | { |
mfurukawa | 0:33eee66305ae | 46 | pc.baud(921600); //921600 / 115200 |
mfurukawa | 0:33eee66305ae | 47 | char c; |
mfurukawa | 0:33eee66305ae | 48 | |
mfurukawa | 1:4c8086e3045d | 49 | |
mfurukawa | 1:4c8086e3045d | 50 | u16val[0] = 12345; // 0x3039 |
mfurukawa | 1:4c8086e3045d | 51 | u16val[1] = 54321; // 0xD431 |
mfurukawa | 1:4c8086e3045d | 52 | u16val[2] = 0; // 0x3279 |
mfurukawa | 1:4c8086e3045d | 53 | |
mfurukawa | 0:33eee66305ae | 54 | while(1) { |
mfurukawa | 0:33eee66305ae | 55 | if(pc.readable()){ |
mfurukawa | 0:33eee66305ae | 56 | c = pc.getc(); |
mfurukawa | 0:33eee66305ae | 57 | |
mfurukawa | 0:33eee66305ae | 58 | if(c == 's') { |
mfurukawa | 0:33eee66305ae | 59 | // define callback event |
mfurukawa | 0:33eee66305ae | 60 | ticker.attach_us(eventFunc, 1000000.0f/SampleFreq); |
mfurukawa | 0:33eee66305ae | 61 | } |
mfurukawa | 0:33eee66305ae | 62 | else if(c == 'r') { |
mfurukawa | 0:33eee66305ae | 63 | ticker.detach(); |
mfurukawa | 1:4c8086e3045d | 64 | printf("------\r\n"); |
mfurukawa | 0:33eee66305ae | 65 | } |
mfurukawa | 0:33eee66305ae | 66 | } |
mfurukawa | 0:33eee66305ae | 67 | } |
mfurukawa | 0:33eee66305ae | 68 | |
mfurukawa | 0:33eee66305ae | 69 | |
mfurukawa | 0:33eee66305ae | 70 | } |