Advertisement
CZSibi

SerialSend

May 12th, 2020
1,830
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void SerialWrite() {
  2.   static char aArray[3];
  3.   if (MotA) aArray[0] = aArray[0] | 0b00000001; else aArray[0] = aArray[0] & 0b11111110;
  4.   if (MotB) aArray[0] = aArray[0] | 0b00000010; else aArray[0] = aArray[0] & 0b11111101;
  5.   if (MotC) aArray[0] = aArray[0] | 0b00000100; else aArray[0] = aArray[0] & 0b11111011;
  6.   if (dirState == HIGH) aArray[0] = aArray[0] | 0b00001000; else aArray[0] = aArray[0] & 0b11110111;
  7.   if (ActSpinState == HIGH) aArray[0] = aArray[0] | 0b00010000; else aArray[0] = aArray[0] & 0b11101111;
  8.   if (ActDirStopState == HIGH) aArray[0] = aArray[0] | 0b00100000; else aArray[0] = aArray[0] & 0b11011111;
  9.   if (accelState == HIGH) aArray[0] = aArray[0] | 0b01000000; else aArray[0] = aArray[0] & 0b10111111;
  10.   aArray[1] = potZval / 100;
  11.   aArray[2] = potXval / 100;
  12.   Serial2.write(aArray, 3);
  13. }
  14.  
  15. void SerialRead() {
  16.   static char aArray[3];
  17.   Serial.readBytesUntil(aArray, 3);
  18.   if ((aArray[0] & 0b00000001) != 0) MotA = true; else MotA = false;
  19.   if ((aArray[0] & 0b00000010) != 0) MotB = true; else MotB = false;
  20.   if ((aArray[0] & 0b00000100) != 0) MotC = true; else MotC = false;
  21.   if ((aArray[0] & 0b00001000) != 0) dirState = HIGH; else dirState = LOW;
  22.   if ((aArray[0] & 0b00010000) != 0) ActSpinState = HIGH; else ActSpinState = LOW;
  23.   if ((aArray[0] & 0b00100000) != 0) ActDirStopState = HIGH; else ActDirStopState = LOW;
  24.   if ((aArray[0] & 0b01000000) != 0) accelState = HIGH; else accelState = LOW;
  25.   potZval = aArray[1] * 100;
  26.   potXval = aArray[2] * 100;
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement