KRS ICSサーボモータ用ライブラリ

初期化 KRS name(tx,rx);

位置指定 void SetPosition(id, position); [position : 0 3500 ~ 11500]

速度設定 void SetSpeed(id, speed); [speed : 0 ~ 127]

ストレッチ設定 void SetStretch(id, stretch); [stretch : 0 ~ 127]

電流制限設定 void SetCurrent(id, rotate, value : 0 ~ 127); [rotate : KRS::F KRS::R KRS::COM, current : 0 ~ 64]

ID書き込み void WriteAddress(id);

id : 0x00 ~ 0x1F

Revision:
0:7bf595a76895
Child:
1:50d0eb774b0d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/KRS.cpp	Sat Jul 02 03:12:15 2022 +0000
@@ -0,0 +1,31 @@
+#include "KRS.h"
+#include "mbed.h"
+
+KRS::KRS(PinName tx,PinName rx) : _serial(tx,rx){
+    _serial.baud(115200);
+    _serial.format(8,Serial::Even,1);
+}
+
+void KRS::SetPosition(uint8_t address, uint16_t value){
+    ins = 0b10000000;
+    if(address <= 0x1F){
+        ins |= address;
+    }else{
+        ins |= 0x1F;
+    }
+    
+    if(value == 0){
+        value = 0;
+    }else if(value < 3500){
+        value = 3500;
+    }else if(value > 11500){
+        value = 11500;
+    }
+    byteH = value >> 7;
+    byteL = value;
+    byteL &= (0 << 8);
+    
+    _serial.putc(ins);
+    _serial.putc(byteH);
+    _serial.putc(byteL);
+}
\ No newline at end of file