请大神帮忙看下,就这么一个简单的程序 就是不知道错误在哪里??????急
#include"msp430g2553.h"
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
P1DIR=0X01;
P1OUT|=BIT0;
P1REN|=BIT3; //设置内电阻
P1OUT|=BIT3; //设置上拉
while(1)
{
if((P1IN&BIT3)==0) //不用按下键也可以进去 太奇怪了 按道理P1IN应该为高电平??
{
_delay_cycles(100000);
if((P1IN&BIT3)==0)
{
P1OUT^=BIT0;
_delay_cycles(10000);
while(!(P1IN&BIT3)); //程序一直在里面出不来????
}
}
}
}
用示波器测试,按下P1.3对应的按键 没有反应 一直为低电平
先测量一下,这个引脚是否对地短路。如果没有,设置成输入,加一个上拉电阻看看,电平什么样。
用示波器测了,没有短路,开关是好的,一开始下那个PWM的程序还是好的,后来新建工程,复制程序就不行了,在去下原来的,按键也不行了,真是奇怪,会不会是新建工程的问题,真不知道何解??
这个原因慢慢找,肯定是哪个地方失误,找出来了更记得牢……
#include "io430.h"
#include "intrinsics.h"
void main(void)
{
unsigned int i=0;
WDTCTL = WDTPW + WDTHOLD;
P1DIR|=(BIT0+BIT6);
P1DIR&=~BIT3;
P1OUT|=(BIT0+BIT6);
P1REN|=BIT3;
while(1)
{
if(!(P1IN&BIT3))
{
for(i=0;i<23000;i++);
if(!(P1IN&BIT3))
{
while(!(P1IN&BIT3));
P1OUT^=(BIT6+BIT0);
}
}
}
淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目