打印

MSP430F413 P4口寄存器P4OUT问题

[复制链接]
2364|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szn1423|  楼主 | 2012-12-24 10:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下,仿真值在每句的后面
void main()
{
  WDTCTL=WDTPW+WDTHOLD;                   //p4out为0x18
  FLL_CTL0|=XCAP18PF;            
  P1DIR&=~0XFF;
  P1IES|=BIT5+BIT6+BIT7;
  P2IES|=BIT0;
  P1IE|=BIT5+BIT6+BIT7;
  P2IE|=BIT0;
  P1IFG=0;
  P2IFG=0;
  P3DIR|=0XFF;
  P4DIR|=0XFF;                          //p4out为0x18
  P4OUT&=~(BIT0+BIT5+BIT6+BIT7);     //p4out为0x18
  P4OUT|=BIT1+BIT2+BIT3+BIT4;               //p4out为0x1e      
  P3OUT|=0XFF;                                         //p4out为0x1e      
  BTCTL=BT_ADLY_16;                                 //p4out为0x1e      
  IE2=BTIE;                                                   //p4out为0x1e      
  _EINT();                       
  LPM3;
  while(1)                                                            //p4out为0x1e      
  {
    P1IE&=~BIT5+BIT6+BIT7;                       //p4out为0x18
    P1IFG=0;                                                   //p4out为0x18

为什么p4out的值上电就是0x18呢,不应该是0x00吗?
还有,为什么我都改过了,跑进while()后,又变回0x18呢?

相关帖子

沙发
yewuyi| | 2012-12-24 10:36 | 只看该作者
P4口是否是完整的,如果不完整可能有一些位被强行规定为1了。

仿真时有一些IO口可能会被强行规定为一些状态。

很多年不用MSP430,不记得了,只能根据经验提示你几句。

使用特权

评论回复
板凳
wlq_9| | 2012-12-24 10:39 | 只看该作者
P4口记得是LCD共享口。用作普通IO之前,必须在LCDCTL里面正确配置IO。

使用特权

评论回复
地板
szn1423|  楼主 | 2012-12-24 11:41 | 只看该作者
wlq_9 发表于 2012-12-24 10:39
P4口记得是LCD共享口。用作普通IO之前,必须在LCDCTL里面正确配置IO。

多谢帮忙,我刚加了一句LCDCTL=0,是这样写的吗?如果是的话,结果没变。

使用特权

评论回复
5
szn1423|  楼主 | 2012-12-24 11:49 | 只看该作者
yewuyi 发表于 2012-12-24 10:36
P4口是否是完整的,如果不完整可能有一些位被强行规定为1了。

仿真时有一些IO口可能会被强行规定为一些状 ...

多谢版主援手
P4口有8位,接了5个LED(LED灯一端接着VCC,一端接着p4某个口),两个光耦,不仿真的情况下,上电观察LED灯,p4.0 p4.1 p4.2是常亮的,与我的设定不符

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

251

主题

462

帖子

4

粉丝