打印

单片机控制电机行程

[复制链接]
734|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
damoyeren|  楼主 | 2016-3-22 14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设计思路:
1.单片机收到电机启动命令号,调用启动电机程序,启动电机。电机启动后通过行程标志判断电机是否到达预定行程,如果到达,停止电机,调用电机停止函数。
2.行程计算是通过中断函数用定时器来实现的。假设到达预定行程需要5s,则在5s的时候,置位中断标志位。主函数判断标志位,如果为1,则调用电机停止函数。
/********************T1定时器定时中断**************************/        
        if(TMR1IF&&TMR1IE)
        {
                TMR1IF=0;
                t1_count++;
                TMR1H=0xb;
            TMR1L=0xdb;//延时时间:100ms
                t1_flag=0;//进入中断清除T1定时器标志位;定时时间到后置位T1定时器标志位。
                if(t1_count>=20)
                {
                        t1_count=0;
                        LED1=~LED1;
                        t1_flag=1;
                }
        }


switch(Receive_Array[3])
                              {
                                case 0x33://启动电机
                                            BagData_uart(0x33,2,Motor_OK);//返回启动成功后的数据包
                                            motor_start();
                                                while(!t1_flag);
                                                motor_stop();
                                                //while(t1_flag==0);
                                                //jiansu=1;       
                                                //while(t1_flag)
                                                //{
                                                  //  motor_stop();//debug执行不到此语句
                                                    //break;//终止while循环       
                                                //}
                                           break;

相关帖子

沙发
damoyeren|  楼主 | 2016-3-22 14:58 | 只看该作者
存在的问题:
1.电机不能停止。中断已经进入了,因为中断内部的led测试,led闪烁了。
2.电机的速度降低了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

126

主题

393

帖子

2

粉丝