新人求助,AVR位操作时出现的问题

2019-07-16 01:56发布

问题描述:我用PA4口接按键,用PA3接led灯。但最后,无论按不按按键,灯都不亮。我用万用表一测,发现3、4口开始都为高电平3.6V,按下按键后,PA4口变成低电平0.27V,PA3口没变,还是3.6V。这是怎么回事?我的PIN用的对吗?
问题代码如下:
#include <iom128v.h>
#include <macros.h>
#define  uchar unsigned char
#define  uint  unsigned int

main()
{
DDRA|=BIT(PA3);//1输出
DDRA&=~BIT(PA4);//0输入
PORTA|=BIT(PA4);//1
PORTA&=~BIT(PA3);//0
while(1)
{
if(!(PINA&=~BIT(PA4)))//0
{PORTA|=BIT(PA3);}//1
}
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
397691163
1楼-- · 2019-07-16 03:25
大神们,快来帮忙呀,我还设置了奖励呀!!!
397691163
2楼-- · 2019-07-16 06:19
问题已从百度解决,下面是成功的程序代码
#include <iom128v.h>
#include <macros.h>
#define  uchar unsigned char
#define  uint  unsigned int


main()
{
DDRA|=BIT(3);//1输出
DDRA&=~BIT(4);//0输入
PORTA|=BIT(4);//1
PORTA&=~BIT(3);//0

while(1)
{
if((PINA&BIT(PA4))==0)
{PORTA|=BIT(3);}//1
else
{
    PORTA&=(~BIT(PA3));
}
}
}

一周热门 更多>