完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我想要实现的是,按下正转或反转键,定时器T0按table1的数据来输出周期越来越小的脉冲,最后周期稳定在20US,按键一直按着电机转,按键松开电机不转。松开按键,关闭T0,开T1,按table2的数据输出周期越来越大的脉冲,直至停止。大神们帮忙看看这段程序错在哪里了?谢谢啦
#include #define uchar unsigned char #define uint unsigned int ***it CLK=P1^0; ***it DIR=P1^1; ***it ENA=P1^2; ***it CW=P2^0; //正转按键 ***it CCW=P2^1; //反转按键 bit cw_up=0; //正转按键释放标志 bit ccw_up=0; //反转按键释放标志 uint clock; //周期变量 uint a,b; //a为T0的table1变量,b为T1的table2变量 uchar code table1[]={ //匀加速启动速率表 10000,6666,3333,1000, 500,200,100,60,30,10}; uchar code table2[]={ //匀减速停止速率表 100,500,1000,3333, 6666,10000}; void delayms(uint xms) //延时子程序 { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void discontinue(void) //定时器中断子程序 { IE=0X8A; //开总中断,开T0,T1中断 TMOD=0X11; //设置定时器0和1位工作方式1 TH0=(65536-clock)/256; //T0装初值 TL0=(65536-clock)%256; TH1=(65536-clock)/256; //T1装初值 TL1=(65536-clock)%256; } void sys_init() // 系统初始化 { P2=0XFF; ENA=0; } void keyscan() //案件扫描 { if(!CW) //正转 { delayms(10); //消抖 if(!CW) { ENA=1; DIR=0; TR0=1; //开T0,加速启动 while(!CW); //等待按键释放,若不释放,程序一直停在while(!CW)语句处 cw_up=1; //按键释放后,置 1 if(cw_up==1) { cw_up=0; //清零 TR1=1; //开T1,减速停止 if(b==7) //b=7时,关闭T1 { TR1=0; } } } } else if(!CCW) //反转 { delayms(10); if(!CCW) { ENA=1; DIR=1; TR0=1; while(!CCW); //等待按键释放 ccw_up=1; if(ccw_up==1) { cw_up=0; TR1=1; if(b==7) { TR1=0; } } } } } void main() //主函数 { discontinue(); sys_init(); while(1) { keyscan(); } } void T0_time() interrupt 1 { for(a=0;a<10;a++) { clock=table1[a]; TH0=(65536-clock)/256; //重装初值 TL0=(65536-clock)%256; CLK=~CLK; } } void T1_time() interrupt 3 { for(b=0;b<=7;b++) { clock=table2; TH1=(65536-clock)/256; //重装初值 TL1=(65536-clock)%256; CLK=~CLK; } } |
|
相关推荐
2个回答
|
|
这个看不太懂啊
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
122 浏览 0 评论
565 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
772 浏览 0 评论
948 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
658 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12043 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 01:26 , Processed in 0.595312 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号