先放一段程序:
#include <msp430.h>
int main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW+WDTHOLD; // Stop WDT
P1DIR |= BIT0; // P1.0 set as output
while(1) // continuous loop
{
P1OUT = ^BIT0; // XOR P1.0
for(i=50000;i>0;i--); // Delay
}
}
P1DIR的物理地址为0X0204,BIT0为CCS5.3定义为0X0001;P1OUT物理地址为0X0202;
按照C语言法则:
P1DIR |= BIT0; 则可解释0X0204或上0X0001,则为0X0205;
P1OUT = ^BIT0; 同理0X0202异或0X0001,则为0X0203;
但是始终觉得应该不是这样子理解的,要不然就物理地址跟赋值都交叉在一起拉,可是我又不知道怎么解释!!!