OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4153|回复: 2

关于AVR单片机的问题2

[复制链接]

34

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2014-5-27
在线时间
7 小时
发表于 2014-9-9 08:37:12 | 显示全部楼层 |阅读模式
5金钱

各位高手,小弟正在基于AVR单片机开发一款智能小车,正在开发超声波测距兼循迹功能。主函数的while循环中首先开启超声波模块,然后运行循迹功能。测试发现小车无法正常循迹,注释掉开启超声波函数后,小车可以正常循迹。但是,开启超声波函数需要循环运行。我想使用定时器中断来运行这个函数,但是3个定时器都已经被占用。请教各位高手,在确保小车正常循迹的基础上,怎样实现同步循环运行开启超声波模块函数。谢谢!主函数中while循环代码如下:

while(1)

{

start_SB();                    /*启动超声波模块*/

 

/*循迹*/
           if (L_XJ !=0&&R_XJ ==0)

{

        DUTY1=50;                       /*调整占空比*/

        DUTY2=50;

        right();                    /*右转*/

}

else if (R_XJ !=0&&L_XJ ==0)

           {
              DUTY1=80;

                DUTY2=80;

               left();                     /*左转*/

           }
          else if((L_XJ !=0)&&R_XJ !=0)
          { 
               DUTY1=30;
                DUTY2=30;
               forward();                  /*
前进*/
            }

        }

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

24

帖子

0

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2014-6-27
在线时间
127 小时
发表于 2014-9-9 09:07:47 | 显示全部楼层
是不是超声波函数占时间太长?
感觉没必要每次都开启超声波,可以加个条件判断,while循环了一定次数开启一次。
回复

使用道具 举报

34

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2014-5-27
在线时间
7 小时
 楼主| 发表于 2014-11-2 09:49:40 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 19:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表