사용자 도구

사이트 도구

English

moacon:motorstat:index

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
moacon:motorstat:index [2016/03/22 21:26]
Comfile Technology 만듦
moacon:motorstat:index [2020/02/23 14:00] (현재)
Comfile Technology [사용예]
줄 1: 줄 1:
 +====== motorStat ======
  
 +''​u32 motorStat (u8 motionID, u8 stChannel )''​
 +|motionID : 모션제어 모듈의 ID ( 0 부터 9 까지 )   ​| ​
 +|stChannel : 채널번호 ​ | 
 +
 +==== 설명 ====
 +현재, 출력중인 펄스의 개수를 알려주는 함수 입니다. 펄스출력이 모두 끝났다면 0 을
 +반환합니다.
 +MotorMove 함수를 실행시키면,​ 펄스출력은 모션제어모듈에서 알아서 출력합니다. CPU 가
 +펄스출력이 종료될때까지 기다리지 않습니다. 따라서 언제 펄스출력이 끝났는지 알아보기
 +위해서 motorStat 함수를 사용해야 합니다. ​
 +
 +==== 사용예 ====
 +<code c>
 +//
 +// 스탭모터를 회전시키면서 회전상태를 CLCD 상에 회전수 (STAT)와 위치(POS)를 표시합니다. ​
 +//
 +#include "​moacon500.h"​
 +void statprint(u32 i)
 +{
 + u32 j;
 + ​clcdPrint(0,​0,"​STAT:​%09d ",i);
 + ​delay(20);​
 + j = getMotorPos(0,​0);​
 + ​clcdPrint(0,​1,"​POS:​ %09d ",j);
 + ​delay(20);​
 +}
 +void cmain(void)
 +{
 + int i=0;
 + ​clcdI2cInit(0);​
 + ​clcdPower(1);​ // lcd 의 Power 를 On
 + ​delay(100);​
 + ​clcdCls();​
 + ​clcdCsr(0);​
 + ​delay(2000);​ // 드라이버가 초기화될때까지 잠시 대기 (2 초)
 + ​setMotorPos(0,​0,​0);​ // 현재위치를 0 으로 셋팅
 + ​while(1) {
 + ​motorSetup(0,​0,​500,​50000,​50000);​ // 모터초기정보 셋팅 (50KHz 출력)
 + ​motorMove(0,​0,​1640000);​ // 1640000 위치로 이동
 + while (i=motorStat(0,​0)) {
 + ​statprint(i);​ // 이동하는 동안 정보를 lcd 상에 표시
 + }
 + ​delay(500);​ // 이동이 종료됨
 + ​i=motorStat(0,​0); ​
 + ​statprint(i);​
 + ​delay(3000);​
 + ​motorMove(0,​0,​0);​ // 원래위치로 다시 이동
 + while (i=motorStat(0,​0)) {
 + ​statprint(i);​
 + }
 + ​delay(500);​
 + ​i=motorStat(0,​0);​
 + ​statprint(i);​
 + ​delay(3000);​
 + }
 +
 +</​code>​
 +
 +
 +[[moacon:​index#​-m-|라이브러리 목록으로 가기]]