/* X703RencDemo.C: Demo program for X703 Compiler: BC++ 3.1 Turbo C ++ 1.01(3.01) (free from http://community.borland.com/museum) Compile mode: large Project: X703funsDemo. ..\..\..\..\lib\7188xbl.lib ..\..\..\..\lib\XBoard\X703.lib Hardware: 7188XB + X703 [16/Oct/2008] by Vic */ /********************************************************************************/ /* X703: 3-axis encoder counter */ /********************************************************************************/ #include #include "..\..\..\..\lib\7188xb.h" #include "..\..\..\..\lib\XBoard\x703.h" int xor1,xor2,xor3,mode1,mode2,mode3; long EncVal1,EncVal2,EncVal3; void read_enc1( long *); void read_enc2(long *); void read_enc3(long *); void main(void) { char Mode[3][15]={"cw\ccw","pulse/dir","a/b"}; InitLib(); X703_Init(); Print("\nxor1 = (0 or 1) ?"); xor1=Getch()-'0'; if (xor1) xor1=1; X703_SetXOR(1,xor1); try_again1: Print("\nmode1 = (1=cw/ccw,2=pulse/dir,3=a/b) ?"); mode1=Getch()-'0'; if(mode1<1 || mode1>3) goto try_again1; X703_SetMode(1,mode1); Print("\nxor2 = (0 or 1) ?"); xor2=Getch()-'0'; if (xor2) xor2=1; X703_SetXOR(2,xor2); try_again2: Print("\nmode2 = (1=cw/ccw,2=pulse/dir,3=a/b) ?"); mode2=Getch()-'0'; if(mode2<1 || mode2>3) goto try_again2; X703_SetMode(2,mode2); Print("\nxor3 = (0 or 1) ?"); xor3=Getch()-'0'; if (xor3) xor3=1; X703_SetXOR(3,xor3); try_again3: Print("\nmode3 = (1=cw/ccw,2=pulse/dir,3=a/b) ?"); mode3=Getch()-'0'; if(mode3<1 || mode3>3) goto try_again3; X703_SetMode(3,mode3); X703_ResetEncoder(1); X703_ResetEncoder(2); X703_ResetEncoder(3); for (;;) { if (Kbhit()) { Getch(); return; } read_enc1(&EncVal1); read_enc2(&EncVal2); read_enc3(&EncVal3); Print("\n(mode1=%s,enc1=%lx) (mode2=%s,enc2=%lx) (mode3=%s,enc3=%lx)",Mode[mode1-1],EncVal1,Mode[mode2-1],EncVal2,Mode[mode3-1],EncVal3); DelayMs(100); } } // --------------------------------------------------------------- void read_enc1(long *enc1) { X703_Read24BitEncoder(1,enc1); } void read_enc2(long *enc2) { X703_Read24BitEncoder(2,enc2); } void read_enc3(long *enc3) { X703_Read24BitEncoder(3,enc3); }