新人求助,AVR位操作时出现的问题
时间:10-02
整理:3721RD
点击:
问题描述:我用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
}
}
问题代码如下:
#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
}
}
大神们,快来帮忙呀,我还设置了奖励呀!
问题已从百度解决,下面是成功的程序代码
#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));
}
}
}