在这个代码中
P1DIR = 0x01; // P1.0 output, else input
P1OUT = 0x10; // P1.4 set, else reset
首先设置P1.0输出,其他输入,第二句就让P1.4输出高电平,这两句不矛盾吗?
#include <msp430.h>
int main(void)
{WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timerP1DIR = 0x01;// P1.0 output, else inputP1OUT = 0x10;// P1.4 set, else resetP1REN |= 0x10;// P1.4 pullupwhile (1)// Test P1.4{if (0x10 & P1IN) P1OUT |= 0x01;// if P1.4 set, set P1.0else P1OUT &= ~0x01;// else reset}
}
还有在下面这个代码中,为什么接P1.4时首先需要 P1OUT = 0x10; // P1.4 set, else reset
才能设置上拉电阻呢?上拉电阻的作用是保护内部结构防止静电接触瞬间放电吗?
而如果是P1.3就不用这样呢?(P1.3是LED P1.4悬空)
#include <msp430.h>
int main(void)
{WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timerP1DIR = 0x01;// P1.0 output, else inputP1OUT = 0x10;// P1.4 set, else resetP1REN |= 0x10;// P1.4 pullupP1IE |= 0x10;// P1.4 interrupt enabledP1IES |= 0x10;// P1.4 Hi/lo edgeP1IFG &= ~0x10;// P1.4 IFG cleared_BIS_SR(LPM4_bits + GIE);// Enter LPM4 w/interrupt
}
// Port 1 interrupt service routine
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{P1OUT ^= 0x01;// P1.0 = toggleP1IFG &= ~0x10;// P1.4 IFG cleared
}
RUICHEN WU:
回复 ning wang8:
谢谢解答,完整的解答了我的疑惑,我在网上看到好多说用户手册的重要性,但是技术文档中有太多文件眼花缭乱,一般来说,只有datasheet 和 family user‘s guide 这两个有用吗?
ning wang8:
回复 RUICHEN WU:
我建议你同时打开中文版英文版的用户手册,有些中文翻译有些并不好,没有的话,留邮箱给我,我发给你
ning wang8:
回复 ning wang8:
补充一下,我这还有一个新手学习的手册,只有英文的,你需要吗
RUICHEN WU:
回复 ning wang8:
恩恩,我也发现了,实在太感谢你了。
RUICHEN WU:
回复 ning wang8:
恩恩,英文的可以,谢谢了,376968969@qq.com麻烦发到我email
TI中文支持网



