智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1206|回复: 2
打印 上一主题 下一主题

大神帮忙看看这个HC-SR04测距的问题,在线等!!!

[复制链接]

3

主题

14

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1017
威望
560
贡献
265
兑换币
259
注册时间
2015-1-2
在线时间
96 小时
毕业学校
黑龙江科技大学
跳转到指定楼层
1#
发表于 2015-3-20 17:50:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
//trig->A0
//echo->A1

unsigned int a,s;

void setbus(void)   //设置总线频率为40MHz
{
  CLKSEL_PLLSEL = 0;
  PLLCTL_PLLON = 1;

  SYNR = 0xc0 | 0x04;

  REFDV = 0x80 | 0x01;

  POSTDIV = 0x00;

  _asm(nop);
  _asm(nop);

  while(!(CRGFLG_LOCK==1))
  {
    ;
  }

  CLKSEL_PLLSEL = 1;


}


  void PIT(void)     //PIT初始化子程序
   {

  PITCFLMT = 0x00;  //禁止PIT模块
  PITCE_PCE0 = 1;   //使能定时器通道0
  PITMUX = 0x00;    //定时器通道使用Base Timer0(微定时基准0)
  PITMTLD0 = 0x04;    //设置8位微定时装载寄存器0初值(8位计数器初值)
  PITLD0 = 0x000a;    //设置16位微定时装载寄存器0初值(16位计数器初值)
  PITCFLMT =0x80;     //使能PIT模块

  }                                   


#pragma CODE_SEG __NEAR_SEG NON_BANKED        //中断服务子程序
interrupt VectorNumber_Vpit0 void PIT_ISR(void)
{
  PITTF_PTF0 = 1;
  a++;

}
#pragma CODE_SEG DEFAULT


void signal() //触发信号
{
    DDRA = 0x01;
    PORTA = 0x01;
    PITINTE = 0x01;
    while(a<=20)
     {
       ;    //等待20us
    }
    PITINTE = 0x00;
    a = 0;   
    PORTA = 0x00;
}

void distance() //测试距离
{

    while(!(PORTA == 0x02));
    PITINTE = 0x01;
    while(!(PORTA == 0x00));
    PITINTE = 0x00;   
    s =(char) (a * 17/100);
}

void SCI()   //SCI0初始化程序
{
    SCI0BD = 206;

    SCI0CR1 = 0x00;
    SCI0CR2 = 0x2;

}

void SCI_sendbyte(unsigned int data)
{
    while(!(SCI0SR1&0x80));
    SCI0DRH = 0;
    SCI0DRL = data;

}
void main(void) {




        EnableInterrupts;
  setbus();
  PIT();
  SCI();

  for(;;) {
    _FEED_COP();
     signal();

     distance();

  SCI_sendbyte(s);
  }

}

这个程序是测距的,但是编译器编译时在
void SCI_sendbyte(unsigned int data)
{
    while(!(SCI0SR1&0x80));
    SCI0DRH = 0;
    SCI0DRL = data;

}
老是说SCI0DRL = data可能会丢失数据,是什么情况啊?

回复

使用道具 举报

3

主题

14

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1017
威望
560
贡献
265
兑换币
259
注册时间
2015-1-2
在线时间
96 小时
毕业学校
黑龙江科技大学
2#
 楼主| 发表于 2015-3-20 20:22:59 | 只看该作者
有没有大神啊  帮帮忙   我看了一天了 都没看出是哪出错了
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1017
威望
560
贡献
265
兑换币
259
注册时间
2015-1-2
在线时间
96 小时
毕业学校
黑龙江科技大学
3#
 楼主| 发表于 2015-3-21 19:31:59 | 只看该作者
就没有一个人能帮下忙吗
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-28 06:47 , Processed in 0.085364 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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