完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用STC12LE5A32S2做了个东西。
用定时器0产生定时时间。 定时器是这样的: void time0(void) interrupt 1 { ET0 = 0; //定时器0中断关 TH0=0xE5;//(65536-n*FOSC/12/1000)/256;//n=10ms 这里采用8M晶振计算的 TL0=0xF5;//(65536-n*FOSC/12/1000)%256; if(run_time_flag==1) run_time--; if(parameter[1]==1) L1 = 0;//L1指示灯,用于调试 else L1 = 1; ET0 = 1; //定时器0中断打开 } 这里产生10MS定时。一直开着的。 在run_time_flag==1时进入运行时间递减。 主程序里面是这样的。 在SL1按下后,进入自动运行状态。 自动运行工作是这样的, RUN=0就是运行,硬件电路是个继电器电路。硬件电路是没有问题的。 运行时间是在parameter[3]变量中存着。 然后发送一串按键数据出去: “”“”“”“”“”“”“”“”“”“”“”“ Send_Data(0); ”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“ 以上数据发送出去电机在RUN=0动作继电器后就会反转。 parameter[1] 是个电机运行状态记录变量,0为正转,1为反转; 主程序如下: if(SL1 == 0) { delay(20); if(SL1 == 0) { Show_flag = 1; while(SL1 == 0);// Auto_Flag=1; Break_off_SL2 = 0;//暂停后自动运行取消标志 1:为取消 } } if(Auto_Flag == 1) { if(parameter[1]==1) Send_Data(0); parameter[1] = 0;//启动 正转 存数据 run_time = parameter[3];//forward_run_time; run_time_flag = 1;//开始计时 run = 0;run1 = 0; while (run_time>0) //执行自动进刀 这里的80也为了给下面电机换向时的转动时间补 { } } if(Break_off_SL2==0) { run_time_flag = 0; run = 1;//停止 run1 = 1; delay(10); //电机停下,后再发转 100ms if(parameter[1]==0) Send_Data(0); parameter[1] = 1;//启动 反转 数据保存 run_time = parameter[4];//backward_run_time; run_time_flag = 1; run = 0; run1 = 0; while (run_time>0) { } } run_time_flag = 0; run = 1;//停止 run1 = 1; Auto_Flag = 0;//自动运行结束 if(parameter[1]==1) Send_Data(0); parameter[1] = 0;//正转 数据保存 Write_Chanshu();//写EEPROM参数,保存数据 问题是出现在: 运行是可以。 我设定正转运行个5S;反转运行个5S;中间有个100MS电机停机时间 我测试过,可以正常工作下下 我测试运行时间,每按下SL1后,电机会运行,并中间也会停机,然后再反转运行。 就是在三次到五次中间会出现个一次运行时间不是5S,而3S左右。 其他次数测试都是正常工作,运行时间也都正常,正转5S,反转5S。 测试过二三十次都是这样。 |
|
相关推荐
4个回答
|
|
|
|
|
|
|
|
|
|
|
|
|
|
电机干扰了单片机的运行,定时器的值***扰了
|
|
|
|
只有小组成员才能发言,加入小组>>
3277 浏览 9 评论
2950 浏览 16 评论
3454 浏览 1 评论
8983 浏览 16 评论
4044 浏览 18 评论
1093浏览 3评论
567浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
564浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2298浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1855浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 18:41 , Processed in 1.238986 second(s), Total 85, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号