打印

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

[复制链接]
2032|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对应各个引脚

不知道这样用对不对啊,还是说碰巧了?

使用特权

评论回复
5
teabottle| | 2012-3-19 20:21 | 只看该作者
写成这个试试
while(1)
{
if(!P1IN_bit.P3)
P1OUT_bit.P0=1;
else
P1OUT_bit.P0=0;
}

或过来与过去的看晕了...

使用特权

评论回复
6
wangjinlili| | 2012-3-19 20:44 | 只看该作者
唉...一般这种情况我都是不管优先级全加上括号...自己看着也清楚

使用特权

评论回复
7
meishizhaoshi| | 2012-3-19 20:51 | 只看该作者
我前几天也出现过这个问题,不过我是通过开发环境调试例如单步变量值等猜出问题所在的,原来要这样写,不要是编程经验少,记性差,不过以后再也不会这个错误了,

使用特权

评论回复
8
ycx621| | 2012-3-19 21:02 | 只看该作者
把if(P1IN&BIT3!=BIT3) 改成if((P1IN&BIT3)!=BIT3) 试试

使用特权

评论回复
9
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;
  }
}

使用特权

评论回复
10
zbq8| | 2012-10-8 11:16 | 只看该作者
Fatal Error[Pe005]: could not open source file "io430.h"


io430.h文件谁有发我一个

使用特权

评论回复
11
lasbell2012| | 2012-10-8 20:36 | 只看该作者
9楼正解啊,就是这个样子的

使用特权

评论回复
12
阳光豆苗| | 2012-10-9 15:01 | 只看该作者
还有这个错误,长见识了,呵呵

使用特权

评论回复
13
mekaluo| | 2012-10-9 18:18 | 只看该作者
9楼正解

使用特权

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

本版积分规则

197

主题

1530

帖子

2

粉丝