求一个红外测距的AVR mega128程序

求一个红外测距的AVR mega128程序,第1张

#include<iom128vh>

#include<macrosh>

#define uint unsigned int

#define uchar unsigned char

uchar mega128_ad(void)

{

uchar i,c;

DDRF&=~BIT(0);//初始化为输入

PORTF|=BIT(0);

ADMUX=0xc0;/基准AVCC、右对齐、通道1/

ADCSRA=0X80;//ADC使能 2分频

ADCSRA|=BIT(ADSC);//ADC开始转换

while(!(ADCSRA&(BIT(ADIF))));/等待/

i=ADCL;

i=i+ADCH256;

if(i>=0x50)

{

c=0xf0;

}

else

{

c=0xff;

}

return c;

void main(void)

{

uchar b,t;

DDRA=0xff;

PORTA=0xff;

DDRF=0xfe;

PORTF=0xff;

while(1)

{

PINA=PINA&mega128_ad();

t=PINA;

if((t&0xaa)==0xa0)

{

PORTA=0x07;

}

else

{

PORTA=0xff;

}

}

如果你使能了看门狗,程序应该不会死掉,当他死掉后,会自动重启的。我建议,你在初始化的时候添加一个外部表示,这样你就可以知道他是不是死机并重启了。如果确实是经常性的重启,你需要检查你的程序喂狗是否及时?有没有死循环或函数执行时间太长等。

以上就是关于求一个红外测距的AVR mega128程序全部的内容,包括:求一个红外测距的AVR mega128程序、我现在用的MEGA64单片机开发的项目,程序中已经开启了看门狗,但是最近会出现死机的现象、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9717101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存