请问下面这条语句是如何操作的?

来源:百度知道 编辑:UC知道 时间:2024/06/22 20:37:53
EECR=(0<<EEPM1)|(0>>EEPM0);

ICCAVR编程软件(AVR单片机程序中的一条语句)
其中EEPM1和EEPM0是EECR中的两个位(这条语句的结果是将EEPM1和EEPM0这两位清0),请问是如何操作的,要详细啊?
这条语句在标准C语言中有没有啊,或者说是ICCAVR扩充的。
我要的是这条语句的具体执行过程
比方说原来 EECR = 0010 0010 ,D7-D0共8位,EEPM1是D5位,EEPM0是D4位。
执行完之条指令之后,EECR的值是多少啊?

这就相当于移位操作,EEPM1和EEPM0在AVR的H文件里定义过了,如果你打开H文件你会看到是这样定义的:define EEPM1 5 define EEPM0 4
你的语句就相当于EECR=(0<<5)|(0<<4);也就是相当于0左移5位和0左移4位
这是标准C的语句,而其他位如果没有设置的话都是为0的

这条语句怎么看都是EECR=0

当然没有啦 这是设置EEPROM的编程状态

直接这么写就就可以了 EEPM1 EEPM0 EECR都会随着硬件的变化而改变

不能安装C语言一般的语法理解