微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > AVR就改了个口,程序就执行不鸟了,怎么回事

AVR就改了个口,程序就执行不鸟了,怎么回事

时间:10-02 整理:3721RD 点击:
我PA0为按键时能正常执行,但把按键改为PA1后,就不行了,怎么会时。还有,我这个程序现实中实际上是控制电磁阀,但PA0根本没控制到电磁阀,电磁阀的指示灯都没亮。
正常程序如下://只用到了PA0,没用到PA1
#include <iom128v.h>
#include <macros.h>
#define  uchar unsigned char
#define  uint unsigned int
uchar i=0;
void delay(uint ms)
{
   uint a,j;
   for(a=0;a<ms;a++)
     for(j=0;j<1140;j++);
}

uchar key_press()
{
if((PINA&BIT(PA0))==0)
{return 1;}
if((PINA&BIT(PA0))==1)
{return 0;}
}

void key_scan()
{
delay(20);
if(key_press())
{
i++;
switch(i)
{
case 1:PORTA|=BIT(PA2);break;
case 2:PORTA&=~BIT(PA3);
            PORTA&=~BIT(PA4);break;
case 3:PORTA|=BIT(PA3);break;
case 4:PORTA|=BIT(PA4);break;
case 5:PORTA&=~BIT(PA2);i=0;break;
}
while(key_press()==1);
delay(20);
}
}
main()
{uchar j;
DDRA=0X1C;//
PORTA=0X1B;
while(1)
{
key_scan();
}
}
修改PA0为PA1://此时PA1用,PA0闲着
uchar key_press()//修改部分,其他没变
{
if((PINA&BIT(PA0))==0)
{return 1;}
if((PINA&BIT(PA0))==1)
{return 0;}
}

不正常时,PA1


正常时,PA0


有图,来真相,求相助

不正常的情况是这样的,我一通电,还没安按键,灯就开始亮起走了,按一下PA1,灯就停了,截屏图片没搞好,我重发点

下面是我重发的不正常图

不正常2


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top