求助,AVR Studio 的诡异问题,,while(1); 这句话竟然不能编译??!!
近日在做巡线小车,用的是M16,但是在写了个简单的程序在调试小车的时候,竟然出现了一个特别诡异的问题,就是WHILE(1);这句话不会被编译看我的代码
#include <avr/io.h>
#include <avr/interrupt.h>
#define countertop 10000//这里定义了pwm波的最大计数值,从而得到50HZ的频率
#define uchar unsigned char
#define uint unsigned int
#define moto_left_fwd PORTD=(PORTD|(1<<PD0))&(~(1<<PD1)) //左电机正转
#define moto_left_bck PORTD=(PORTD|(1<<PD1))&(~(1<<PD0)) //左电机反转
#define moto_right_fwd PORTD=(PORTD|(1<<PD6))&(~(1<<PD7)) //右电机正转
#define moto_right_bck PORTD=(PORTD|(1<<PD7))&(~(1<<PD6)) //右电机反转
#define moto_left_off PORTD=PORTD&(~(1<<PD0))&(~(1<<PD1)) //左电机停
#define moto_right_off PORTD=PORTD&(~(1<<PD6))&(~(1<<PD7)) //右电机停
uchar duty1=75,duty2=85; //定义占空比,为字符型,0-99,即duty%
void init() //初始化
{
DDRD|=0b11110011;
DDRA=0;//PORTA0-7设置为输入,读取传感器的值
PORTA&=0x7F;
moto_left_off;//初始关闭电机
moto_right_off;
TCCR1A=0b10100000; //配置定时器1工作在相位与频率修正PWM,TOP值为ICR1
TCCR1B=0b00010010; //8分频,正常PWM输出
ICR1=countertop; //ICR1 为计数器的TOP值
OCR1A=countertop*duty1/100; //设置捕捉比较输出初值
OCR1B=countertop*duty2/100;
TIMSK|=((1<<OCIE1A)|(1<<OCIE1B)|(1<<TOIE1)); //使能比较匹配中断
SREG=0x80; //使能全局中断
/* 置位 WDTOE 和 WDE*/
WDTCR |= (1<<WDTOE) | (1<<WDE);
/* 关闭看门狗 */
WDTCR = 0x00;
}
intmain()
{
init();
while((PINA&0X80)==0X80);//等待启动键按下
moto_left_fwd;
moto_right_fwd;
while(1);
}
解释一下这句话:
while((PINA&0X80)==0X80);//等待启动键按下
我在PA7加了一个按键,如图,目的就是在这个键按下的时候小车程序才会跑。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_597629E2326E.jpg
(原文件名:PA7按键原理图.jpg)
按理说,应该按键按下一次以后,小车的应该一直跑,但现在的问题是,按键按下小车可以跑,只要按键松开,小车就停止转动,再按下去,小车又开始转,松开又停止。
你说要是这样的话,那不是程序是自动复位了。细想想,如果不是这样,小车应该在按键按一下以后就会一直转啊,比较我已经通过moto_left_fwd;moto_right_fwd;这两句给P口赋值了。。。只有复位了才会P口上的值清零啊。。。。。。。现在竟然出现了这毛病
问了一个学长是看门狗没关,但是我已经在程序里关了啊。。。但是这里说一句就是PDF上有一句是_WDR();由于AVR STUDIO编译通不过,我就去掉了。感觉没啥大的必要,难道跟这个有关????
下面看一下我在AVR studio的调试截图。。。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_597631MDIWF6.JPG
调试截图1 (原文件名:调试截图一.JPG)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_597632A9FD7Z.JPG
调试截图2 (原文件名:调试截图2.JPG)
看调试效果,while里面没有形成死循环。。。。。
我现在无语了。。。。哪位大仙给我解释一下啊。。。。。跪求解释啊。。。。。。 没有人知道么。。。。不要沉了啊。。。。
页:
[1]