最简单的程序不知道错在哪里啊。。。。

[复制链接]
2880|12
 楼主| gexingyouxian 发表于 2012-3-19 19:45 | 显示全部楼层 |阅读模式
买了lunchpad的学习板之后就一直没玩过,这几天才开始玩啊。今天写了一个最简单的程序就不对,不知道错在哪里啊。。。。
#include "io430.h"
int main(void)
{
  WDTCTL=WDTPW+WDTHOLD;
  P1DIR|=BIT0;
  P1DIR&=~BIT3;
  while(1)
  {
    if(P1IN&BIT3!=BIT3)
       P1OUT&=~BIT0;
    else
     P1OUT|=BIT0;
  }
}
 楼主| gexingyouxian 发表于 2012-3-19 19:46 | 显示全部楼层
程序很简单啊 但是下载进去之后不对啊,本来是想通过按键s2控制led的亮暗的但是不好使啊,呜呜。。。
acer4736 发表于 2012-3-19 19:58 | 显示全部楼层
应该修改成if((P1IN&BIT3)!=BIT3)。
另外,若key没有外接上拉电阻,请开启MCU内部的上拉,否则悬空导致key电平不确定。
jinpaidianzi 发表于 2012-3-19 20:10 | 显示全部楼层
其实有时候用BITx什么的不是很方便
我看了一下头文件,貌似可以用
P1OUT_bit.Px =0或是1的方式直接操作引脚
像P1OUT_bit、P1DIR_bit这样的都是一个结构体,里面有P0-P7对应各个引脚

不知道这样用对不对啊,还是说碰巧了?
teabottle 发表于 2012-3-19 20:21 | 显示全部楼层
写成这个试试
while(1)
{
if(!P1IN_bit.P3)
P1OUT_bit.P0=1;
else
P1OUT_bit.P0=0;
}

或过来与过去的看晕了...
wangjinlili 发表于 2012-3-19 20:44 | 显示全部楼层
唉...一般这种情况我都是不管优先级全加上括号...自己看着也清楚
meishizhaoshi 发表于 2012-3-19 20:51 | 显示全部楼层
我前几天也出现过这个问题,不过我是通过开发环境调试例如单步变量值等猜出问题所在的,原来要这样写,不要是编程经验少,记性差,不过以后再也不会这个错误了,
ycx621 发表于 2012-3-19 21:02 | 显示全部楼层
把if(P1IN&BIT3!=BIT3) 改成if((P1IN&BIT3)!=BIT3) 试试
peter_zheng 发表于 2012-3-19 22:32 | 显示全部楼层
#include "io430.h"
int main(void)
{
  WDTCTL=WDTPW+WDTHOLD;
  P1DIR|=BIT0;
  P1DIR&=~BIT3;
  while(1)
  {
    if(P1IN&BIT3!=BIT3)  ////这句应该有问题,P1IN&BIT3应该一直是BIT3.。。。。。
       P1OUT&=~BIT0;
    else
     P1OUT|=BIT0;
  }
}
zbq8 发表于 2012-10-8 11:16 | 显示全部楼层
Fatal Error[Pe005]: could not open source file "io430.h"


io430.h文件谁有发我一个
lasbell2012 发表于 2012-10-8 20:36 | 显示全部楼层
9楼正解啊,就是这个样子的
阳光豆苗 发表于 2012-10-9 15:01 | 显示全部楼层
还有这个错误,长见识了,呵呵
mekaluo 发表于 2012-10-9 18:18 | 显示全部楼层
9楼正解
您需要登录后才可以回帖 登录 | 注册

本版积分规则

197

主题

1530

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部