OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5940|回复: 3

lvalue required as left operand of assignment?

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-8-29
在线时间
1 小时
发表于 2015-9-1 15:06:32 | 显示全部楼层 |阅读模式
5金钱
大家好!如下是一个简单的电压比较程序,atmega64的PF1作为电压输入,电压比较后PD口控制不同的灯亮。用avr studio4编译,为什么一直出现这个错——lvalue required as left operand of assignment?这是个啥,着急呀?错误指示是倒数第八行的那句 ADMUX=0x01;可是为什么删掉这句后,还是会有错?大神在哪儿,求助啊.......先谢谢啦。
#include <avr/io.h>  
#include <util/delay.h>
#define fosc 8000000 //晶振8MHZd
void adc_init(void) //AD通道初始化

 ADCSRA = 0x00;
 ADMUX = 0x60; //ACC参考电压,左对齐
 ACSR |= 0x80; //关闭模拟比较器
 ADCSRA = 0x85; //使能ADC,中断未使能,32分频 
}
unsigned int ADC_Convert(void)
{unsigned int temp1,temp2;
 temp1=(unsigned int)ADCL;
 temp2=(unsigned int)ADCH;
 temp2=(temp2<<8)+temp1;
 return(temp2);
}

void adc_isr(void)

{
   
unsigned int data=0;       //variable for ADC result
DDRD=0XFF;
   
data=ADC_Convert();
 
if(data>(3*1023)/5)
      
PORTD=0x04;
 
else if(data<(2*1023)/5)
     
PORTD=0x01;
  
else
lse     
PORTD=0x02;
   
ADCSR=ADCSR|0x40;         //start the next conversion
}

int main(void)

{
 DDRF=0x00;                    //设置A口为不带上拉输入;
 ORTF=0x00;
 DDRD=0xff;                    //设置C口为推挽1输出;
 ORTD=0x00;
 ADMUX=0x01;                   //选择第二通道ADC1;
 _delay_ms(3000);
while(1);
{
 adc_init();
 adc_isr();
}  
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

81

主题

1004

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-9-1 17:49:15 | 显示全部楼层
else
lse 
这是啥?
你能不能加点括号啊?
if ()
{

}
else if ()
{

}
else
{

}
小小蜗牛
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-8-29
在线时间
1 小时
 楼主| 发表于 2015-9-2 09:41:43 | 显示全部楼层
回复【2楼】jiutianshenjian:
---------------------------------
我也是奇怪了。我这儿studio4里面看不到lse这个字符,所以一直找不到问题,复制过来后也没注意看。当局者迷啊,谢谢啦!
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-8-29
在线时间
1 小时
 楼主| 发表于 2015-9-2 12:09:56 | 显示全部楼层
回复【2楼】jiutianshenjian:
---------------------------------
您好!刚接触avr单片机,好多都不懂。之前做了adc,然后想到dac,
avr能实现给一个16进制数,然后管脚直接输出一个电压值吗,就像adc一样,
外部给AVRR一个参考电压,0xff对应最大值,0x00到0xff之间对应不同电压值,
ps:不是pwm转换,而是da转换。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-4-27 06:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表