MSP430学习笔记2---两个LED同时亮灭和顺闪
参照学习笔记1,再看看板子上写着P1.0(LED1) P1.6(LED2)很容易写出同时点亮两个LED的程序:
1 #include <msp430x14x.h> 2 3 void main(void) 4 { 5 WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer 6 P1DIR |= 0x41; // Set P1.0 to output direction 7 8 for (;;) 9 { 10 volatile unsigned int i; 11 12 P1OUT ^= 0x41; // Toggle P1.0 using exclusive-OR 13 14 i = 50000; // Delay 15 do (i--); 16 while (i != 0); 17 } 18 }
如果顺闪的话在 P1DIR |= 0x41; 的后面加上 P1OUT = 0x01; 即可。
新的问题来了外接口默认输出是高电平还是低电平呢。写入如下代码
1 #include <msp430x14x.h> 2 3 void main(void) 4 { 5 WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer 6 P1DIR |= 0x41; // Set P1.0 to output direction 7 8 for (;;); 9 }
运行了7、8次,发现除去一次两灯都不亮之外,都是LED2一个灯亮。不知道什么原因,LED1一直没亮,难道是巧合,下次拿示波器来试下就知道了。
ps:2013-12-9拿来示波器看下,发现默认是低电平