为了进行触摸键对步进电机的运行控制,必须解决2个主要问题,一是触摸键的状态采集及模拟控制,另一个则是步进电机的驱动控制。这里先实现第一个要求,即以触摸键来模拟对电机的测控,其主程序如下:
- #include ".\Public\CH554.H"
- #include ".\Public\debug.h"
- #include ".\Touch_Key\TouchKey.H"
- #include "stdio.h"
- UINT16I TouchKeyButton = 0;
- char keycode[7] = {'0','1','2','3','4','5','6'};
- void main( void )
- {
- UINT16I k = 0;
- UINT8 i;
- CfgFsys();
- mDelaymS(5);
- mInitSTDIO( );
- printf( "Start Init TouchKey...\r\n" );
- P1_MOD_OC &= 0x0C;
- P1_DIR_PU &= 0x0C;
- TouchKeyQueryCyl2ms();
- GetTouchKeyFree();
- for(i=KEY_FIRST;i<(KEY_LAST+1);i++)
- {
- printf("***Channel %02x base sample %04x\n",(UINT16)i,KeyFree[i-KEY_FIRST]);
- }
- while(1)
- {
- TouchKeyChannelQuery();
- if(KeyBuf)
- {
-
- if(KeyBuf==3) printf("步进电机+ 向\n\r");
- if(KeyBuf==4) printf("步进电机- 向\n\r");
- if(KeyBuf==5) printf("步进电机停止\n\r");
- if(KeyBuf==6) printf("步进电机测试\n\r");
- KeyBuf = 0;
- mDelaymS(20);
- }
- mDelaymS(30);
- }
- }
复制代码
经编译下载后,其执行效果如图所示,其中K1控制电机正转,K2控制电机反转,K3控制电机停止转动,K4控制电机进行正反转双向检测。
注:较为怪异的是本想在输出信息中直接显示电机的正反转状态,但在显示正转一种出现异常,故只好改用+/-来表示正反向了。
查询方式下的HEX测试文件:
USB中断方式下的HEX测试文件:
此内容由EEWORLD论坛网友jinglixixi原创,如需转载或用于商业用途需征得作者同意并注明出处