binary out test

Dependencies:   mbed

Committer:
mfurukawa
Date:
Mon Aug 06 08:24:37 2018 +0000
Revision:
0:33eee66305ae
Child:
1:4c8086e3045d
initial commit and publish;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mfurukawa 0:33eee66305ae 1 #include "mbed.h"
mfurukawa 0:33eee66305ae 2
mfurukawa 0:33eee66305ae 3 #define SampleFreq 5 // [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 0:33eee66305ae 16
mfurukawa 0:33eee66305ae 17 void eventFunc(void)
mfurukawa 0:33eee66305ae 18 {//
mfurukawa 0:33eee66305ae 19 // timer.reset();
mfurukawa 0:33eee66305ae 20 // timer.start();
mfurukawa 0:33eee66305ae 21
mfurukawa 0:33eee66305ae 22 // limitation on sending bytes at 921600bps - 92bits(under 100us/sample)
mfurukawa 0:33eee66305ae 23 // requirement : 1kHz sampling
mfurukawa 0:33eee66305ae 24 // = 921.5 bits/sample
mfurukawa 0:33eee66305ae 25 // = 115.1 bytes/sample
mfurukawa 0:33eee66305ae 26 // = 12.7 bytes/axis(9dof, including delimeter) each data uses float type value, equals to 4 bytes as binary description
mfurukawa 0:33eee66305ae 27
mfurukawa 0:33eee66305ae 28 memcpy(u8buf, dummy_code, sizeof(uint8_t) * 6);
mfurukawa 0:33eee66305ae 29 //fwrite(u8buf, sizeof(uint8_t), 6, stdout);
mfurukawa 0:33eee66305ae 30 for(int i=0;i<6;i++)
mfurukawa 0:33eee66305ae 31 putc(dummy_code[i], stdout);
mfurukawa 0:33eee66305ae 32
mfurukawa 0:33eee66305ae 33 // terminator for ascii sending only //
mfurukawa 0:33eee66305ae 34 printf("\r\n");
mfurukawa 0:33eee66305ae 35 }
mfurukawa 0:33eee66305ae 36
mfurukawa 0:33eee66305ae 37 int main()
mfurukawa 0:33eee66305ae 38 {
mfurukawa 0:33eee66305ae 39 pc.baud(921600); //921600 / 115200
mfurukawa 0:33eee66305ae 40 char c;
mfurukawa 0:33eee66305ae 41
mfurukawa 0:33eee66305ae 42 while(1) {
mfurukawa 0:33eee66305ae 43 if(pc.readable()){
mfurukawa 0:33eee66305ae 44 c = pc.getc();
mfurukawa 0:33eee66305ae 45
mfurukawa 0:33eee66305ae 46 if(c == 's') {
mfurukawa 0:33eee66305ae 47 // define callback event
mfurukawa 0:33eee66305ae 48 ticker.attach_us(eventFunc, 1000000.0f/SampleFreq);
mfurukawa 0:33eee66305ae 49 }
mfurukawa 0:33eee66305ae 50 else if(c == 'r') {
mfurukawa 0:33eee66305ae 51 ticker.detach();
mfurukawa 0:33eee66305ae 52 printf("terminated\r\n");
mfurukawa 0:33eee66305ae 53 }
mfurukawa 0:33eee66305ae 54 }
mfurukawa 0:33eee66305ae 55 }
mfurukawa 0:33eee66305ae 56
mfurukawa 0:33eee66305ae 57
mfurukawa 0:33eee66305ae 58 }