#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单片机开发的项目,程序中已经开启了看门狗,但是最近会出现死机的现象、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)