📄 adc.c
字号:
/*============================文件信息===========================*/
/*文 件 名:adc.c */
/*创 建 人:葛康 */
/*最后修改日期:2006年2月24日 */
/*文 件 描 述: 无 */
/*===============================================================*/
#include "AT91SAM7S64.h"
#include "lib_AT91SAM7S64.h"
extern void led_on(char led, char index);
extern void led_delay(void);
/*****************************************************************/
/*函数名称:adc_init */
/*功能描述:初始化ADC的相关积存器 */
/*输入参数:无 */
/*输出参数:无 */
/*****************************************************************/
void adc_init(void)
{
//AT91F_ADC_SoftReset(AT91C_BASE_ADC);
AT91F_ADC_CfgPMC (); //使能ADC时钟
AT91F_ADC_CfgModeReg(AT91C_BASE_ADC,0x0f1f3f00); //软件启动,10位分辨率,128分频
AT91F_ADC_EnableChannel(AT91C_BASE_ADC,0xD0);//使能通道4\6\7
AT91F_ADC_DisableIt(AT91C_BASE_ADC,0xfffff); //禁止所有的ADC中断
}
/*****************************************************************/
/*函数名称:ad4_read */
/*功能描述:读取ADC的转换结果 */
/*输入参数:无 */
/*输出参数:ad_val */
/*****************************************************************/
unsigned short ad4_read(void)
{
unsigned short ad_val;
volatile unsigned int status;
//adc_init(); //初始化ADC
AT91F_ADC_StartConversion(AT91C_BASE_ADC); //启动AD转换
status =AT91F_ADC_GetStatus(AT91C_BASE_ADC);
if(status&AT91C_ADC_EOC4)
{
ad_val=AT91F_ADC_GetConvertedDataCH4(AT91C_BASE_ADC)&0x3ff;//读取转换结果
}
return ad_val;
}
/*****************************************************************/
/*函数名称:ad6_read */
/*功能描述:读取ADC的转换结果 */
/*输入参数:无 */
/*输出参数:ad_val */
/*****************************************************************/
unsigned short ad6_read(void)
{
unsigned short ad_val;
volatile unsigned int status;
//adc_init(); //初始化ADC
AT91F_ADC_StartConversion(AT91C_BASE_ADC); //启动AD转换
status =AT91F_ADC_GetStatus(AT91C_BASE_ADC);
if(status&AT91C_ADC_EOC6)
{
ad_val=AT91F_ADC_GetConvertedDataCH6(AT91C_BASE_ADC)&0x3ff;//读取转换结果
}
return ad_val;
}
/*****************************************************************/
/*函数名称:ad7_read */
/*功能描述:读取ADC的转换结果 */
/*输入参数:无 */
/*输出参数:ad_val */
/*****************************************************************/
unsigned short ad7_read(void)
{
unsigned short ad_val;
volatile unsigned int status;
//adc_init(); //初始化ADC
AT91F_ADC_StartConversion(AT91C_BASE_ADC); //启动AD转换
status =AT91F_ADC_GetStatus(AT91C_BASE_ADC);
if(status&AT91C_ADC_EOC7)
{
ad_val=AT91F_ADC_GetConvertedDataCH7(AT91C_BASE_ADC)&0x3ff;//读取转换结果
}
return ad_val;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -