关闭

合泰HT66F04 AD 初始化

标签: 合泰HT66F04 AD 初始化
2116人阅读 评论(0) 收藏 举报
分类:
以下是AD检测初始化
以下是AD检测初始化
#define AD_START 	_start = 0;	_start = 1;	_start = 0//开始AD转换

#define AD_WAITINT	1==_eocb //等待AD转换完成

#define AD_PWOER_OPEN	(0<<5)	//AD电源模块打开
#define AD_PWOER_CLOSE 	(1<<5)	//AD电源模块关闭

#define AD_DATA_MODE1  (1<<4)
#define AD_DATA_MODE1  (0<<4)

	//BIT4  ADRFS= 1:ADC数据高字节是 ADRH的第 3 位--BIT3-BIT0,低字节是 ADRL的第 0 位 BIT7-BIT0
		//	ADRFS= 0:ADC数据高字节是 ADRH的第 7 位--BIT7-BIT0,低字节是 ADRL的第 4 位 BIT7-BIT4
		
#define M_AN0				0b00000000//AD通道0
#define M_AN1				0b00000001
#define M_AN2				0b00000010
#define M_AN3				0b00000011
#define M_AN4				0b00000100
#define M_AN5				0b00000101
#define M_AN6				0b00000110
#define M_AN7				0b00000111	

//_adcr1	

#define  AD_IN_125V_SET  (1<<7)//内部1.25V连接到AD转换器
#define  AD_IN_125V_CLR (0<<7)

#define  AD_IN_125V_EN  (1<<6)//使能内部1.25V
#define  AD_IN_125V_DIS (0<<6)

#define  AD_VREAFS_IN	 (0<<4)//AD参考电压内部vdd
#define  AD_VREAFS_OUT	 (1<<4)//AD参考电压VREF脚

#define  AD_FSYS //AD时钟源 Fsys
#define  AD_FSYS2 //AD时钟源 Fsys/2
#define  AD_FSYS4 //AD时钟源 Fsys/4
#define  AD_FSYS8 //AD时钟源 Fsys/8
#define  AD_FSYS16 //AD时钟源 Fsys/16
#define  AD_FSYS32 //AD时钟源 Fsys/32

//_acerl  不作IO口,做AD口设置

#define  AD_ONLY_AN0  (1<<0)//第1个口做A/D输入
#define  AD_ONLY_AN1  (1<<1)//第2个口做A/D输入
#define  AD_ONLY_AN2  (1<<2)//第3个口做A/D输入
#define  AD_ONLY_AN3  (1<<3)//第4个口做A/D输入
#define  AD_ONLY_AN4  (1<<4)//第5个口做A/D输入
#define  AD_ONLY_AN5  (1<<5)//第6个口做A/D输入
#define  AD_ONLY_AN6  (1<<6)//第7个口做A/D输入
#define  AD_ONLY_AN7  (1<<7)//第8个口做A/D输入

void AD_init(void)
{
	//ADCR0	
	_adcr1	=  0b00000011;	//主要用到BIT4和BIT2~0 其他可以不用管		
	//Bit 4     	0:内部 ADC电源 
	//  		1:VREF引脚 
	//Bit 2~0        ADCK2, ,, ,ADCK1, ,, ,ADCK0:选择 ADC时钟源
								//000:fSYS 001:fSYS/2 010:fSYS/4 011:fSYS/8 100:fSYS/16 101:fSYS/32 110:fSYS/64 :未定义
	_adcr0  =  M_AN0
		
	//BIT 7  0-1-0 启动
        //0-1重置
	//BIT 6 0AD结束 1AD进行中			
	//BIT 5 0开AD电源 1关AD电源 		
	//BIT4  ADRFS= 1:ADC数据高字节是 ADRH的第 3 位--BIT3-BIT0,低字节是 ADRL的第 0 位 BIT7-BIT0
	//	ADRFS= 0:ADC数据高字节是 ADRH的第 7 位--BIT7-BIT0,低字节是 ADRL的第 4 位 BIT7-BIT4
	//BIT3-BIT2 保留
//bit1 bit0	AD通道选择
					
	_acerl|	|= 0x01;		//设置ADC0通道 ----1为AD输入 0 为io
}
void read_adc(void)
{
	AD_START;
	while(_eocb == 1);

	R_adch=_adrh;
	R_adcl=_adrl;
}







   
34
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:134670次
    • 积分:5087
    • 等级:
    • 排名:第5455名
    • 原创:88篇
    • 转载:4篇
    • 译文:0篇
    • 评论:22条
    最新评论