大神note3usb调试在哪帮我调试下程序,跪求

第三方登录:后使用快捷导航没有帐号?
只需一步,快速开始
扫一扫,访问微社区
查看: 1204|回复: 3
大神帮我看看HC-SR04超声波探测程序的问题
主题帖子精华
高级会员, 积分 906, 距离下一级还需 94 积分
高级会员, 积分 906, 距离下一级还需 94 积分
在线时间87 小时
毕业学校黑龙江科技大学
#include &hidef.h&& && && &&&/* common defines and macros */
#include &derivative.h&& && &/* derivative-specific definitions */
#include &MC9S12XS128.h&
// echo连接的是PA1
//trig连接的是PA0
unsigned char a=0,s;
void PIT(void)& &&&//PIT初始化子程序
&&PITCFLMT = 0x00;&&//禁止PIT模块
&&PITMUX_PMUX0 = 1;& & //定时器通道使用Base Timer0(微定时基准0)
&&PITMTLD0 = 0x01;& & //设置8位微定时装载寄存器0初值(8位计数器初值)
&&PITLD0 = 0x0078;& & //设置16位微定时装载寄存器0初值(16位计数器初值)
&&PITCFLMT =0x80;& &&&//使能PIT模块
&&PITCE_PCE0 = 1;& &//使能定时器通道0
&&PITINTE = 0x01;& &&&//使能PIT定时器通道0中断
& &//5us计时
#pragma CODE_SEG __NEAR_SEG NON_BANKED& && &&&//中断服务子程序
interrupt VectorNumber_Vpit0 void PIT_ISR(void)
{& && && && && && && && && && && &
& &if(PITTF_PTF0 == 1)
& & PITTF_PTF0 = 1;& & //清除标志位
#pragma CODE_SEG DEFAULT
void IO_INIT()//初始化端口
& &DDRA = 0x01;
& &PORTA = 0x00;
void delay(unsigned int loop_times)& && && && && &&&//延时10us程序
unsigned int loop_i,loop_j;
for(loop_i=0;loop_i&loop_loop_i++)
{for(loop_j=0;loop_j&38;loop_j++)
void signal() //超声波触发信号
& & PORTA_PA0 = 1;& &&&
& & PORTA_PA2 = 1;
& & delay(1);
& & PITINTE = 0x00;//关闭定时器
& & PORTA_PA0 = 0;//拉低电位
& & a = 0;&&//计时清0
void distance() //测试距离
& & while(!(PORTA_PA1 == 1))//程序一直 卡死在这里
& & }& && &
& & PITINTE = 0x01;
& & while(!(PORTA_PA1 == 0))
& & PITINTE = 0x00;& &
& & s =a * 17/20;& &//a每5us增加一次
/***************************************************
** 函数名称: PLL_Init
** 功能描述: 时钟初始化函数
** 说明:& &&&总线时钟选定24M
****************************************************/
void PLL_Init(void)
&&CLKSEL=0x00;
&&SYNR=0XC0 | 0X05;
&&REFDV=0XC0 | 0X03;
&&PLLCTL_PLLON=1;
&&POSTDIV=0X00;
&&asm(nop);
&&asm(nop);
&&while(0==CRGFLG_LOCK); //锁相环锁定
&&CLKSEL_PLLSEL=1; //选定PLL时钟
void SCI0_Init()&&//串口初始化
SCI0BDL = (byte)(( /* OSC freq /2*/) / 9600 /* baud rate */ / 16 /*factor*/);
SCI0CR1 = 0X00;& && && && && && && && && && && && &&&/*normal,no parity*/
SCI0CR2 = 0X2C;& && && && && && && && && && && && &&&/*RIE=1,TE=1,RE=1, */
void SCI_Write(unsigned char sendchar)&&串口发送数据
& & while (!(SCI0SR1&0x80));
& & SCI0DRH=0;
& & SCI0DRL=
void main(void) {
& &&&DisableI
& &&&IO_INIT();
& &&&PLL_Init();
& &&&SCI0_Init();
& &&&PIT();
& && & & & EnableI
&&//-------------------//
&&for(;;) {
& && &&&signal();
& && &&&distance();
& && &&&SCI_Write(s);
经过我单步调试发现问题就是echo接收不到高电平,HC-SR04模块我也有换过,应该不是模块问题,求大神 支支招!!!
主题帖子精华
这并没有什么卵用.
跨届大侠, 积分 6212, 距离下一级还需 5788 积分
跨届大侠, 积分 6212, 距离下一级还需 5788 积分
在线时间694 小时
主题帖子精华
常驻嘉宾, 积分 4430, 距离下一级还需 1570 积分
常驻嘉宾, 积分 4430, 距离下一级还需 1570 积分
在线时间502 小时
128的话用输入捕捉吧
主题帖子精华
注册会员, 积分 63, 距离下一级还需 137 积分
注册会员, 积分 63, 距离下一级还需 137 积分
在线时间2 小时
毕业学校吉大
试试这个& && && && && && && && && && &#include &hidef.h&& && &/* common defines and macros */
#include &derivative.h&& && &/* derivative-specific definitions */
#define TIMER&&2& && && &
#define TRING&&PTP_PTP0& &//控制端& &
#define ECHO& &PTP_PTP1& &//接收端& &&&
//---------------------------1us准确延时__64M-----------------------------
void Delay1us(int c)
&&int cnt0;
&&for(cnt0=0;cnt0&2*c;cnt0++)
& && &_asm NOP; _asm NOP;_asm NOP;
& && &_asm NOP; _asm NOP;_asm NOP;_asm NOP;
& && &_asm NOP; _asm NOP;_asm NOP;_asm NOP;
& && &_asm NOP; _asm NOP;_asm NOP;_asm NOP;
& && &_asm NOP; _asm NOP;_asm NOP;
//---------------------------1ms准确延时__64M-------------------------
void Delay1ms(int c)
& & int cnt1;
& & for(cnt=0;cnt&2*c;cnt++)
& && &&&for(cnt1=0;cnt1&1000;cnt1++)
& && && && &_asm NOP; _asm NOP;_asm NOP;_asm NOP;
& && && && &_asm NOP; _asm NOP;_asm NOP;_asm NOP;
& && && && &_asm NOP; _asm NOP;_asm NOP;_asm NOP;
& && && && &_asm NOP; _asm NOP;_asm NOP;_asm NOP;
& && && && &_asm NOP; _asm NOP;_asm NOP;_asm NOP;
void SetBusCLK_64M(void)
&&CLKSEL=0x00;
&&PLLCTL_PLLON=1;& &//turn on PLL
&&SYNR =0xc0 | 0x07;&&//80M& && && && && && && &
&&REFDV=0x80 | 0x01;
&&POSTDIV=0x00;& && & //pllclock=2*16*(1+SYNR)/(1+REFDV)=xxMHz;
&&while(CRGFLG_LOCK!=1);//Wait Till VCO Run Stable
&&CLKSEL_PLLSEL=0x01;//PLLCLK Enabled,Bus Clock=PLLCLK/2=24M
/*IO口初始化*/& &
void IO_Init(void)& &
& & DDRP = 0x01;& &&&//A0输出,A1输入& &&&
/*PIT初始化,实现10US定时*/& && &
void PIT_Init(void)& && &&&
& &PITCFLMT_PITE = 0;&&//定时中断通道0关& && &&&
& &PITCE_PCE0 = 1; //定时器通道0使能&&
& &PITMUX_PMUX0=0;& && &
& &PITMTLD0 = 16 - 1; //8位定时器初值设定,160分频& && &&&
& & PITLD0 = TIMER - 1;& &//16位定时器初值设定,TIMER*10us& && &&&
& &PITINTE_PINTE0 = 1; //定时器中断通道0中断使能& && &&&
& &&&//定时器通道0使能关& && &&&
void main(void)& && &&&
& &IO_Init();& && &&&//IO初始化& &
& &PIT_Init();& && & //PIT初始化& && &&&
& &EnableI //开中断& && &
& &/*等待200us使超声波模块初始化完毕*/& &
& &Delay1us(200);& &
& &while (1)& &
& && & /*给控制端一个超过10US的高电平,然后置低*/& &
& && & TRING = 1;& &
& && & Delay1us(20);& && &&&
& && & TRING = 0;& &
& && && &&&time=900;
& && & /*等待接收端产生高电平并计时*/& &
& && & while (!ECHO);
& && & PITCFLMT_PITE =1;
& && & while (ECHO);
& && &PITCFLMT_PITE =0;
& && &&&t=900-& &
& && & dis = 0.17*t*0.5;
& && & Delay1ms(100);& && && & }& && &&&
/*PIT定时中断*/& && &
#pragma CODE_SEG __NEAR_SEG NON_BANKED& && &&&
void interrupt 66 PIT0(void)& && &&&
& &PITTF_PTF0 = 1; //清中断标志位& &&&
& &--& && &
#pragma CODE_SEG DEFAULT
论坛元老奖章
会员等级达到元老
在线王奖章
在线时间长,且活跃度高
活跃会员奖章
经常参与各类话题讨论,发贴较有主见
优秀会员奖章
注册后积极参与论坛讨论
Powered by|  
|  
|  
|  
|  
只需一步,快速开始
查看: 563|回复: 0
跪求大神帮助我调试GTA4车包。
主题帖子积分
新手玩家, 积分 9, 距离下一级还需 41 积分
新手玩家, 积分 9, 距离下一级还需 41 积分
求大神远程帮我调试GTA4车包,调试好了比有重谢,愿意的大神加我QQ:,联系的时候注:GTA4调试的。谢谢了
Powered by

我要回帖

更多关于 大神威武 跪求勾搭 的文章

 

随机推荐