初学430问一个弱弱的问题
while((IFG1&OFIFG)!=0)为什么不直接用while(OFIFG!=0)。 这两个东西的 条件不是一样的吧 anvy178 发表于 2012-7-17 15:40 static/image/common/back.gif这两个东西的 条件不是一样的吧
不就是当OFIFG=1的时候继续执行吗? 但是 前面是IFG1&OFIFG等于1 才执行啊后面是OFIFG 等于1怎么会一样呢 IFG1是寄存器,OFIFG是一个数 anvy178 发表于 2012-7-17 15:49 static/image/common/back.gif
但是 前面是IFG1&OFIFG等于1 才执行啊后面是OFIFG 等于1怎么会一样呢
当OFIFG=0时,IFG1&OFIFG!=1;当OFIFG=1时,IFG1&OFIFG!=0啊. 这不是跟OFIFG!=1和OFIFG!=0一个效果吗? IFG1是MSP430中的一个寄存器,
而OFIFG 是这个寄存器中的一个位。
见下图,
所以楼主的疑问,那两个while的判断条件是完全不一样的:
while((IFG1&OFIFG)!=0)表示 寄存器IFG1中的OFIFG位是否为0;
而
while(OFIFG!=0)替换一下为 while ( 0X02 != 0 ) 判断条件一直为假。
{:lol:} 楼上正解;
while((IFG1&OFIFG)!=0)先按位与运算,目的是只判断寄存器IFG1的第二位是否为零 GNMXD 发表于 2012-7-17 16:14 static/image/common/back.gif
IFG1是MSP430中的一个寄存器,
而OFIFG 是这个寄存器中的一个位。
我勒个擦 原来这样啊 来抱一抱。{:3_46:} 关键是430不能位寻址 {:lol:}学习了。。
页:
[1]