本帖最后由 小营七郎 于 2013-10-22 22:54 编辑
<< >> | & ~ 这些位可以实现对某一位置位和清0
Rx寄存器作为输出时,无疑高低两种电平
将Rx的第3位置1 Rx|=(1<<3)
将Rx的第3位清0 Rx&=~(1<<3)
Rx寄存器作为输入时,有两种方式,一是作为模拟输入;二是高低电平输入,这种输入一般用于中断标志位去判断是否发生。
获得Rx寄存器某一位的状态,属于第二种,(R>>4)&1就是把Rx寄存器移动4位,第3位变成第0位然后和1进行逻辑运算
为了方便使用,经常把以上这些操作写成宏的方式
#define BSET(bit,Rx) ((Rx)|=(1<<(bit))) //置位某位
#define BCLR(bit,Rx) ((Rx)&=~(1<<(bit)))//清除某位
#define BGET(bit,Rx) (((Rx)>>(bit)) &1 ) //得到某位的状态
K60的引脚和大多mcu一样,有的有复用功能,这本书以144引脚MAPBGA封装的MK60N512VMD100来介绍,这个芯片共有5组通用IO口,分为A—E,
A口有26个引脚,PTA0-PTA19, PTA24-PTA29(很好奇为什么不连续着来了,为什么没有20到28?这样的话后面对引脚初始化的话感觉有些不方便呀!)
其他的IO口类似A口,每组IO引脚不一定相同。
今天就学到这。
|