完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
//ioport unsigned port100e; /* 包含文件 */ #include "def.h" #include "2410lib.h" #include "option.h" #include "2410addr.h" #include "interrupt.h" int ro=0; unsigned char ch; unsigned char h; unsigned char keyflag; unsigned char min; /* functions */ void delay( int count ); // 整步模式正转脉冲 void Main1(void) { unsigned char pluse_table[] = { 0x05, 0x09, 0x0a, 0x06, };
for(;;){
if( ro == 4 ) ro = 0; (*(volatile unsigned char*)0x28000006) = pluse_table[ro++]; delay(20); }
{ //整步反
void Main2(void) { unsigned char pluse_table[] = { 0x05, 0x06, 0x0a, 0x09, };
for(;;){
if( ro == 4 ) ro = 0; (*(volatile unsigned char*)0x28000006) = pluse_table[ro++]; delay(20); } }
//半步正
void Main3(void) { unsigned char pluse_table[] = { 0x05, 0x01, 0x09, 0x08,0x0a,0x02,0x06,0x04, };
for(;;){
if( ro == 4 ) ro = 0; (*(volatile unsigned char*)0x28000006) = pluse_table[ro++]; delay(20); } } //半步反 void Main4(void) { unsigned char pluse_table[] = { 0x05, 0x04, 0x06, 0x02,0x0a,0x08,0x09,0x01, };
for(;;){ if( ro == 4 ) ro = 0; (*(volatile unsigned char*)0x28000006) = pluse_table[ro++]; delay(20);
}
} void Main(void) { /* 配置系统时钟 */ ChangeClockDivider(1,1); // 1:2:4 ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz
/* 初始化端口 */ Port_Init();
/* 初始化串口 */ Uart_Init(0,115200); Uart_Select(0);
/* 打印提示信息 */ PRINTF("n---键盘测试程序---n"); PRINTF("n请将UART0与PC串口进行连接,然后启动超级终端程序(115200, 8, N, 1)n");
/* 开始回环测试 */ while(1) { ch = Key_GetKeyPoll(); h=ch-48; if(ch != 0) { PRINTF("r'%c'键按下", ch); }
if(h==2) // 调用转动状态 { Main1();
} if(h==3) {Main2(); } if(h==4) { Main3();
} if(h==5) { Main4();
} } } /***************************************************************************** // Function name : delay // Description : 延时子程序 // Return type : void // Argument : count,延时的数值 *****************************************************************************/ void delay( int count ) { int cnt;
for( count = count; count>0; count--) for( cnt = 0; cnt < 100; cnt++); |
|
相关推荐
2个回答
|
|
在判断了按下后,你要把你判断的那个标准进行清零,否则你的if一直是有效的,就会进到死循环中
|
|
|
|
你的几个电机控制程序本身就是死循环,所以你先要确定以什么方式退出死循环,然后把这个退出死循环的判读加入到电机控制中,作为退出死循环的方法
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
575 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十七章 image图像对比实验
554 浏览 0 评论
500 浏览 1 评论
482 浏览 0 评论
关于RT-Thread studio添加freemodbus控件失败的问题
817 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11642 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 18:33 , Processed in 0.777118 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号