【发布时间】:2017-03-11 08:08:37
【问题描述】:
#include <avr/io.h>
int main(void)
{
DDRB=0b11111111; //PORTB as output port connected to motors;
DDRC=0b0000000; //PORTC Input port connected to sensors;
int left_sensor=0;
int right_sensor=0;
while(1)
{
left_sensor=PINC&0b00000001;
right_sensor=PINC&0b00001000 ;
if((left_sensor==0b0000000)&&(right_sensor==0b0000000))
{
PORTB=0b00000000;
}
else if((left_sensor==0b00000001)&&(right_sensor==0b00001000))
{
PORTB=0b00010010;
}
else if((left_sensor==0b0000000)&&(right_sensor==0b0001000))
{
PORTB=0b00000010;
}
else if((left_sensor==0b00000001)&&(right_sensor==0b0000000))
{
PORTB=0b00010000;
}
}
}
它显示“while 之前的预期表达式”。 我已经尝试了所有方法,但我没有得到任何解决方案。
错误:Expected Expression before 'while'
编译器:Atmel Studio 7
【问题讨论】:
-
我认为您收到此错误是因为
DDRB和/或DDRC未定义。通过“”回溯并确保包含正确的设备文件。 -
在您的问题中逐字包含编译器输出(复制和粘贴),以便我们可以看到确切的错误和编译器调用。使用的编译器及其版本也将帮助任何可能回答的人
-
Atmel Studio 7 是 IDE 而不是编译器。它可以与各种编译器一起使用。这不是完整的构建日志 - 编译器诊断对于诊断问题很有用,并且包含您忽略的信息。
-
请使用文本常量而不是“幻数”。现在我可以明白为什么标准 C 不允许使用二进制文字了...