找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 5865|回复: 4

当于NXC原地转弯

[复制链接]
发表于 2012-1-16 16:31:23 | 显示全部楼层 |阅读模式
新手提问。。
这两天研究了一下NXC  现在还在记一些函数

研究到直角转弯的时候,发现没有类似的接口。。

自己写了一个,感觉很麻烦  请高人指点
task move(){
RotateMotor(OUT_C,30,-180);
}
task move2(){
RotateMotor(OUT_B,30,180);
}
task main(){
Precedes(move,move2);

}
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-1-16 17:38:29 | 显示全部楼层
那两句函数是阻塞的,所以你用了多任务,如果是我的话,我想我会是做个条件语句轮询,就不必多任务了。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2012-1-16 19:14:43 | 显示全部楼层
糖伯虎 发表于 2012-1-16 17:38
那两句函数是阻塞的,所以你用了多任务,如果是我的话,我想我会是做个条件语句轮询,就不必多任务了。

明白了!!
请教代码
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-1-19 10:10:38 | 显示全部楼层
關於控制馬達前進後退,用OnFwd或OnRev指令就可以了,以下有參考程式,假設左輪接在B,右輪接在C。
  1. task main()
  2. {
  3.         OnFwd(OUT_B, 75); //B馬達順轉,電力75。OUT_B表示B馬達,OUT_A表示A馬達,OUT_BC表示B和C馬達,依此類推。75表示電力,範圍1-100。
  4.         OnRev(OUT_C, 75); //C馬達反轉,引數和OnFwd用法一樣。
  5.         Wait(10000); //等待10000毫秒(1ms=0.001s)
  6. }
复制代码
若要控制B、C馬達同時轉動,照順序呼叫OnFwd、OnRev就可以了,原則上可以不需要多工,因為用起來差不多。
外加一個建議,如果要使用雙馬達分別控制左右倫,建議接在B、C兩端,因為A端的晶片和B、C端不一樣。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2012-1-19 21:14:27 | 显示全部楼层
jerry73204 发表于 2012-1-19 10:10
關於控制馬達前進後退,用OnFwd或OnRev指令就可以了,以下有參考程式,假設左輪接在B,右輪接在C。若要控制 ...

谢谢  最近我也找到一个不错的方法rotateMotorEx(OUT_BC,60,360,100,true,true);
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-11-21 21:18 , Processed in 0.084670 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表