AC모터를 정회전 50ms, 역회전 500ms의 작업을 반복하려면 아래와 같이 함. 여기에서 보면 반복작업이므로 while 루프가 무한반복실행된다. 대부분의 로봇프로그램(제어장치)는 이렇게 무한루프안에 실행된다 사실에 유의할 것!

 

#include "NXCDefs.h"

task main()
{
  while(true)
  {
    OnFwd(OUT_AC, 50);
    Wait(500);

    OnRev(OUT_AC, 50);
    Wait(500);

  }
}

---------------------------------------------------------------------------------------------------------

여기에다 A,C모터의 속도를 측정해서, 표시해주고 싶다면,

아래와 같이, 새로운 변수들을 설정해서, 연산하고, 각 작업마다 속도계산하는 함수를 넣어주어야 한다.

 

#include "NXCDefs.h"

void DisplayVelocity()
{
  long x1_A,x2_A,x1_C,x2_C,t1,t2;
  float v_A,v_C;
  string str;


  x1_A=MotorRotationCount(OUT_A);
  x1_C=MotorRotationCount(OUT_C);
  t1=CurrentTick();
  TextOut(0, LCD_LINE1, NumToStr(t1));
  str=StrCat("   ", NumToStr(x1_A)," ", NumToStr(x1_C));
  TextOut(0, LCD_LINE2, str);
  Wait(10);
  x2_A=MotorRotationCount(OUT_A);
  x2_C=MotorRotationCount(OUT_C);
  t2=CurrentTick();
  TextOut(0, LCD_LINE3, NumToStr(t2));
  str=StrCat("   ",NumToStr(x2_A)," ", NumToStr(x2_C));
  TextOut(0, LCD_LINE4, str);
  v_A=(x2_A-x1_A)/(t2-t1);
  TextOut(0, LCD_LINE5, NumToStr(v_A));
  v_C=(x2_C-x1_C)/(t2-t1);
  TextOut(0, LCD_LINE6, NumToStr(v_C));
}

task main()
{
  while(true)
  {
    OnFwd(OUT_AC, 50);
    Wait(500);
   
    DisplayVelocity();
   
    OnRev(OUT_AC, 50);
    Wait(500);

    DisplayVelocity();
  }
}

그런데, 이렇게 하면 위의 코드에서 보는바와 같이 속도측정하는 함수를 매번 불러줘야 하는 불편함과, 코드가 길어지고 지저분해진다. 이에 멀티태스킹이 필요하게 된다.!

 

 

 

 

 

조회수 :
554
등록일 :
2013.04.02
15:57:56 (*.31.132.20)
엮인글 :
http://svl.kumoh.ac.kr/?document_srl=36874&act=trackback&key=86a
게시글 주소 :
http://svl.kumoh.ac.kr/?document_srl=36874
List of Articles
번호 제목 글쓴이 날짜 조회수
공지 id: student2015 pw: student2015 신동원 2015-09-02 468
30 마인드스톰 9797 부품사진 file 신동원 2015-12-03 671
29 알고리즘 file 신동원 2015-12-03 628
28 미로로봇스펙 신동원 2015-11-18 291
27 미로로봇 신동원 2015-11-18 335
26 스모로봇스펙 신동원 2015-11-05 262
25 스모로봇-전진후진 신동원 2015-11-05 297
24 라인트레이서(2센서) 스펙 신동원 2015-10-28 557
23 라인트레이셔 2센서 조교 2015-10-14 688
22 라인트레이서 1센서 조교 2015-10-14 486
21 향후일정 신동원 2013-06-04 442
20 배달로봇 새조 편성 신동원 2013-06-04 282
19 경기장 작업조 편성 file 신동원 2013-05-07 235
18 라인트레이서 예제 file 신동원 2013-04-30 449
17 nxc 총정리, 메모리, cpu 동작원리 file 신동원 2013-04-30 752
16 중간시험예제 file 신동원 2013-04-18 388
15 강의노트 11장 Array and Structure file 신동원 2013-04-16 893
14 강의노트 9장 Task and Function file 신동원 2013-04-09 418
13 속도측정 task 프로그램 신동원 2013-04-02 403
» 속도측정 프로그램 신동원 2013-04-02 554