main()
{
WDTCTL = WDTPW + WDTHOLD;
UCSCTL3 = 0;
UCSCTL0 |= 16 << 8;
UCSCTL1 = DCORSEL_4;
UCSCTL2 = 149;
UCSCTL6 &= ~(XT1DRIVE_3);
UCSCTL4 = SELA_0 + SELS_3 + SELM_3;
P6DIR = 0xFF;
P6OUT = 0xFF;
P6OUT = 0x00;
P6OUT = 0xFF;
P6OUT = 0x00;
while(1);
}
外部接32768Hz晶振,经过150倍频后,MCLK约为4.9MHz,此时一个指令周期约203ns。
P6OUT = 0xFF;和 P6OUT = 0x00;两句的汇编代码是
mov.b #0xFF, &PCOUT_H 和 clr.b &PCOUT_H
根据手册执行这两句的时间我认为应该是4+4 = 8个时钟周期(约1600ns)。
而示波器上观察输出方波的周期为700ns而我觉得该时间和执行P6OUT = 0xFF; P6OUT = 0x00;两句的时间应该是相同的。 |