Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed BufferedSerial
Revision 0:07a5cc567526, committed 2021-03-27
- Comitter:
- howanglam3
- Date:
- Sat Mar 27 07:53:20 2021 +0000
- Commit message:
- arm move;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BufferedSerial.lib Sat Mar 27 07:53:20 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/howanglam3/code/BufferedSerial/#1d0446cdfcb0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sat Mar 27 07:53:20 2021 +0000
@@ -0,0 +1,79 @@
+#include "mbed.h"
+#include "BufferedSerial.h"
+
+
+#define GET_LOW_char(A) (uint8_t)((A))
+//Macro function get lower 8 bits of A
+#define GET_HIGH_char(A) (uint8_t)((A) >> 8)
+//Macro function get higher 8 bits of A
+#define char_TO_HW(A, B) ((((uint16_t)(A)) << 8) | (uint8_t)(B))
+//put A as higher 8 bits B as lower 8 bits which amalgamated into 16 bits integer
+#define ID1 1
+#define ID2 2
+#define ID3 3
+#define ID4 4
+
+#define LOBOT_SERVO_FRAME_HEADER 0x55
+#define LOBOT_SERVO_MOVE_TIME_WRITE 1
+
+using namespace std;
+
+BufferedSerial serial_port(PA_9, PA_10, 16, 16); // tx, rx, buffer size, multiple
+
+DigitalOut myled(LED1);
+
+char LobotCheckSum(char buf[])
+{
+ char i;
+ uint16_t temp = 0;
+ for (i = 2; i < buf[3] + 2; i++) {
+ temp += buf[i];
+ }
+ temp = ~temp;
+ i = (char)temp;
+ return i;
+}
+
+
+void LobotSerialoneServoMove(uint8_t id, int16_t position, uint16_t time)
+{
+ char buf[10];
+ if(position < 0)
+ position = 0;
+ if(position > 1000)
+ position = 1000;
+ buf[0] = buf[1] = LOBOT_SERVO_FRAME_HEADER;
+ buf[2] = 0x08;
+ buf[3] = 0x03;
+ buf[4] = 0x01;
+ buf[5] = GET_LOW_char(time);
+ buf[6] = GET_HIGH_char(time);
+ buf[7] = id;
+ buf[8] = GET_LOW_char(position);
+ buf[9] = GET_HIGH_char(position);
+ serial_port.write(buf, 10);
+}
+
+
+int main() {
+ //serial_port.set_baud(115200);
+ //serial_port.set_format(8,BufferedSerial::None,1);
+ //char buf[10]={0};
+ while(1){
+ myled = 1;
+ LobotSerialoneServoMove(ID1, 700, 1000);//id, pos, time
+ LobotSerialoneServoMove(ID2, 500, 1000);
+ wait_ms(1000);
+ LobotSerialoneServoMove(ID1, 500, 1000);
+ LobotSerialoneServoMove(ID2, 600, 1000);
+ wait_ms(1000);
+ LobotSerialoneServoMove(ID1, 900, 1000);
+ LobotSerialoneServoMove(ID2, 700, 1000);
+ wait_ms(1000);
+ LobotSerialoneServoMove(ID1, 500, 1000);
+ LobotSerialoneServoMove(ID2, 600, 1000);
+ wait_ms(1000);
+ myled = 0;
+ wait_ms(1000);
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sat Mar 27 07:53:20 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file