[NXC程式分享]前進反轉車 by 右澄

今天上課的題目: 機器人定速前進, 但壓下觸碰感應器後就會定速後退。

關鍵在於使用兩個task來管理subroutine, 並透過傳值來使馬達反轉。 aaa與bbb都使用了 Acquire()與Release()來管理, 避免兩個 task 打架。

又澄是一位可愛但有點愛偷懶的妹妹, 由於堅持不讓本尊曝光, 所以沒有照片…

============================================

int a = 30;
mutex move;

sub x(int power)
{  OnFwd(OUT_AB,power); }

task aaa()
{
while(true)
{
Acquire(move);
x(a);
Wait(300);
Release(move);
}
}//aaa

task bbb()
{
while(true)
{
if(Sensor(S2)==1)
{
Acquire(move);
x(-a);
Wait(300);
Release(move);
}
}
}//bbb

task main()
{

SetSensorTouch(S2);
Precedes(aaa,bbb);
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *