AVR单片机问题:请帮忙解释一下这行代码

来源:百度知道 编辑:UC知道 时间:2024/06/03 15:28:02
AVR C代码:
EECR |= (1<<EEWE)
这里EECR是EEPROM控制寄存器地址,EEWE是EECR中的一个bit,这行代码是给EEWE置位,我主要想了解(1<<EEWE)以及<<的含意.

首先你到iom128.h的文件中你会发现,EEWE是AVR程序里面宏定义好的为1的。
/* EEPROM Control Register */
#define EERIE 3
#define EEMWE 2
#define EEWE 1
#define EERE 0

<<是左移位的意思 1<<EEWE 就是把 1左移1位 变成二进制就是把00000001左移一位,变成00000010。 然后再把00000010与EECR相或 这样得到新的EECR上的第二位就肯定为1了,而其余位是不变的。 明白了吗? 应该要给我加分哦