请问一个AVR单片机编程的问题?
下面是一个单片机模数转换的程序,使用的是Mega16单片机内部的AD转换器,请问其中的”DDRA&=~BIT(PA0);PORTA&~BIT(PA0);“是什么意思?全部...
下面是一个单片机模数转换的程序,使用的是Mega16单片机内部的AD转换器,
请问其中的
” DDRA&=~BIT(PA0);
PORTA&~BIT(PA0);“
是什么意思?
全部程序如下:
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#include "xianshi.c"
unit mega16_ad(uchar ch1)
{
unit addata;
DDRA&=~BIT(PA0);
PORTA&~BIT(PA0);
ADMUX=0;//配置AD的寄存器
ADCSR=0X80;//配置控制寄存器
ADCSR|=BIT(ADSC);
while(!(ADSCR)&(BIT(ADIF)));
/*ADSCR:控制状态寄存器
ADIF:将第四位取为1,其余全为0.热鬉DSCR=1,则为(ADSCR)&(BIT(ADIF))真,跳出循环,执行其它语句*/
addata=ADCL;
addata=addata+ADCH*256;
return addata;
?
}
void main()
{
unit i,ada,ad[4];
while(1)
{
ada=mega16_ad();
for(i=0;i<4;i++)
{
ad[3-i]=ada%10;
ada=ada/10;
}
for(i=0;i<4;i++)
{
show(a[i],i);
delay(2);
}
}
} 展开
请问其中的
” DDRA&=~BIT(PA0);
PORTA&~BIT(PA0);“
是什么意思?
全部程序如下:
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#include "xianshi.c"
unit mega16_ad(uchar ch1)
{
unit addata;
DDRA&=~BIT(PA0);
PORTA&~BIT(PA0);
ADMUX=0;//配置AD的寄存器
ADCSR=0X80;//配置控制寄存器
ADCSR|=BIT(ADSC);
while(!(ADSCR)&(BIT(ADIF)));
/*ADSCR:控制状态寄存器
ADIF:将第四位取为1,其余全为0.热鬉DSCR=1,则为(ADSCR)&(BIT(ADIF))真,跳出循环,执行其它语句*/
addata=ADCL;
addata=addata+ADCH*256;
return addata;
?
}
void main()
{
unit i,ada,ad[4];
while(1)
{
ada=mega16_ad();
for(i=0;i<4;i++)
{
ad[3-i]=ada%10;
ada=ada/10;
}
for(i=0;i<4;i++)
{
show(a[i],i);
delay(2);
}
}
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询