nRF24L01, encoder, pca9685, pid

Dependencies:   mbed QEI-1 LibPN532 nRF24L01P xiugai

Committer:
brainliang
Date:
Thu Nov 07 06:31:09 2019 +0000
Revision:
7:6f8157c58241
V5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
brainliang 7:6f8157c58241 1 #include <string>
brainliang 7:6f8157c58241 2 typedef bool boolean;
brainliang 7:6f8157c58241 3 typedef std::string String;
brainliang 7:6f8157c58241 4
brainliang 7:6f8157c58241 5 void voice_play(String value_, Serial* ser) {
brainliang 7:6f8157c58241 6 const char* value = value_.c_str();
brainliang 7:6f8157c58241 7 int size = strlen(value);
brainliang 7:6f8157c58241 8 int data_length = 1+2+1+1+size;
brainliang 7:6f8157c58241 9 int* data = (int*)malloc(sizeof(int)*(data_length+1));
brainliang 7:6f8157c58241 10
brainliang 7:6f8157c58241 11 int start = 0xfd;
brainliang 7:6f8157c58241 12 int length = size + 3;
brainliang 7:6f8157c58241 13 int length_h = length / 256;
brainliang 7:6f8157c58241 14 int length_l = length % 256;
brainliang 7:6f8157c58241 15 int command = 0x01;
brainliang 7:6f8157c58241 16 int param = 0x01;
brainliang 7:6f8157c58241 17
brainliang 7:6f8157c58241 18 data[0] = start;
brainliang 7:6f8157c58241 19 data[1] = length_h;
brainliang 7:6f8157c58241 20 data[2] = length_l;
brainliang 7:6f8157c58241 21 data[3] = command;
brainliang 7:6f8157c58241 22 data[4] = param;
brainliang 7:6f8157c58241 23
brainliang 7:6f8157c58241 24 for (int i=5; i<5+size; i++) {
brainliang 7:6f8157c58241 25 data[i] = value[i-5];
brainliang 7:6f8157c58241 26 }
brainliang 7:6f8157c58241 27
brainliang 7:6f8157c58241 28 // calculate check bit
brainliang 7:6f8157c58241 29 int check_bit = data[0];
brainliang 7:6f8157c58241 30 for (int i=1; i<data_length; i++) {
brainliang 7:6f8157c58241 31 check_bit ^= data[i];
brainliang 7:6f8157c58241 32 }
brainliang 7:6f8157c58241 33 data[data_length] = check_bit;
brainliang 7:6f8157c58241 34
brainliang 7:6f8157c58241 35 for (int i=0; i<=data_length; i++) {
brainliang 7:6f8157c58241 36 ser->putc(data[i]);
brainliang 7:6f8157c58241 37 }
brainliang 7:6f8157c58241 38
brainliang 7:6f8157c58241 39 free(data);
brainliang 7:6f8157c58241 40
brainliang 7:6f8157c58241 41 //int recv = ser->getc();
brainliang 7:6f8157c58241 42 //PC.printf("%c", recv);
brainliang 7:6f8157c58241 43 //int done = ser->getc();
brainliang 7:6f8157c58241 44 //PC.printf("%c", done);
brainliang 7:6f8157c58241 45 }