Robofun 機器人論壇
標題:
Roboard 的 rcservo initialize 如何一起初始化?
[打印本頁]
作者:
miaoichi
時間:
2010-7-7 09:51
標題:
Roboard 的 rcservo initialize 如何一起初始化?
目前若是想使用 pwm0 ~ 18的話
RoBoIO.roboio_SetRBVer(RoBoIO.RB_100)
RoBoIO.rcservo_SetServo(0, RoBoIO.RCSERVO_SERVO_DEFAULT_NOFB)
If RoBoIO.rcservo_Initialize(0 + 1 + 2 + .... + 18) = False Then
Me.Label_status.Text = RoBoIO.roboio_GetErrMsg()
Else
Me.Label_status.Text = "rcservo_Initialize succeesed!!!"
End If
RoBoIO.rcservo_EnterPWMMode()
RoBoIO.rcservo_Initialize(0 + 1 + 2 + 3 + .... + 18 ) ->這樣初始化好像會有問題
還是有其他的初始化的方法??
謝謝
作者:
acen2008
時間:
2010-7-7 17:45
Hi
如果想要用多channel PWM 的話
RoBoIO.rcservo_SetServo(0, RoBoIO.RCSERVO_SERVO_DEFAULT_NOFB)
可能要改成
for(i=0; i<19; i++)
RoBoIO.rcservo_SetServo(i, RoBoIO.RCSERVO_SERVO_DEFAULT_NOFB)
而RoBoIO.rcservo_Initialize(0 + 1 + 2 + .... + 18)的話, 要改成
RoBoIO.rcservo_Initialize(RoBoIO.RCSERVO_USECHANNEL0 +
RoBoIO.RCSERVO_USECHANNEL1 + ...
RoBoIO.RCSERVO_USECHANNEL18);
rcservo_SetServo 是單channel函數, rcservo_Initialize 則是多channel函數
- 只要是多channel函數, 都有已經定義好的常數, 並且彼此間可做累加
(例如 : RCSERVO_USECHANNEL, AD7918_USECHANNEL)
- 單channel函數, 輸入就只能是數值 (0, 1, 2, 3 ..... 代表第 n channel)
可以去看看官網上的使用手冊, 對你應該有幫助喔
作者:
mzw2008
時間:
2010-7-8 01:46
RoBoIO.rcservo_Initialize(0 + 1 + 2 + .... + 18)
--->
RoBoIO.rcservo_Initialize(0 + 1 + 2 + 4+8+16+32+....)
他內部是兩byte的值
每個bit 為1就啟動PWM, 為0就gpio
其實在.net裡面就是看它的指令即時說明就有了喔
作者:
mzw2008
時間:
2010-7-8 02:17
RoBoIO.rcservo_Initialize(0 + 1 + 2 + 4+8+16+32+....)
也可改迴圈
dim temp as integer=0
for a=0 to 17
temp +=2^a 或是 temp +=math.pow(2,a)
next
RoBoIO.rcservo_Initialize(a)
但還是建議使用內建的常數值
程式的可閱讀性會好很多
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2