找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 5342|回复: 1

关于NXC多任务程序的疑问&程序求解

[复制链接]
发表于 2012-8-7 17:57:07 | 显示全部楼层 |阅读模式
悬赏15乐币已解决
    最近学习NXC碰到了个问题,就是无法实现多任务的并行执行,好不容易找到个多任务的程序,却不能完全看懂,麻烦各位大神给我解释下行不?最好是在程序每行后面加上注释(当然,像前进后退、传感器之类的就不用了),谢谢
mutex moveMutex;
task move_square()
{
   while(true)
   {
    Acquire(moveMutex);
    OnFwd(OUT_BC,100);Wait(1000);
    Release(moveMutex);
    }
   }
task check_sensor()
{
  while(true)
  {
    if(SENSOR_1==1)
    {
      Acquire(moveMutex);
      OnRev(OUT_BC,100);Wait(1000);
      Release(moveMutex);
      }
    }
  }
  task main()
  {
   Precedes(move_square,check_sensor);
   SetSensorTouch(IN_1);
   }


最佳答案

查看完整内容

mutex moveMutex / 定义互斥变量 task move_square() / 方形移动子任务 task check_sensor() / 传感器检查子任务 task main() / 主任务 Acquire(moveMutex) / 获取互斥变量 Release(moveMutex) / 释放互斥变量 Precedes(move_square,check_sensor) / 任务优先级:先方形移动,次传感器检查 使用互斥变量主要是为了让多个子任务在不同条件下有效控制伺服器,否则会出现并发控制而造成程序出错。楼主可以参看教程的第十章。 ...
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-8-7 17:57:08 | 显示全部楼层
本帖最后由 斯螽动股 于 2012-8-7 23:57 编辑

mutex moveMutex  / 定义互斥变量
task move_square() / 方形移动子任务
task check_sensor() / 传感器检查子任务
task main() / 主任务
Acquire(moveMutex) / 获取互斥变量
Release(moveMutex) / 释放互斥变量
Precedes(move_square,check_sensor) / 任务优先级:先方形移动,次传感器检查


使用互斥变量主要是为了让多个子任务在不同条件下有效控制伺服器,否则会出现并发控制而造成程序出错。楼主可以参看教程的第十章。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 05:37 , Processed in 0.091752 second(s), 19 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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