⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c.bak

📁 uCos应用
💻 BAK
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name:          Main.c
** Last modified Date: 2007-03-24
** Last Version:       1.0
** Description:        The basic experiment of AD convertor AD转换基础实验
** 
**------------------------------------------------------------------------------------------------------
** Created By:         Steven Zhou 周绍刚
** Created date:       2007-03-24
** Version:            1.0
** Descriptions:       The original version 初始版本
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
********************************************************************************************************/
#define HWREG(x)   (  *((volatile unsigned long *)(x)) )
#define SYSCTL_RCGC0            0x400fe100  // 运行模式时钟门控寄存器0
#define ADC_O_ACTSS             0x00000000  // 活动采样序列发生寄存器
#define ADC_O_SSPRI             0x00000020  // 采样序列优先级寄存器
#define ADC_O_EMUX              0x00000014  // 事件复用选择寄存器.
#define ADC_O_SSMUX0            0x00000040  // 采样序列0复用寄存器
#define ADC_O_SSCTL0            0x00000044  // 采样序列控制寄存器0
#define ADC_O_PSSI              0x00000028  // 处理器采样序列启动寄存器
#define ADC_O_X_SSFSTAT         0x0000000C  // FIFO状态寄存器
#define ADC_O_SSFIFO0           0x00000048  // 采样序列结果FIFO 0 寄存器
#define ADC_BASE                0x40038000  // AD转换器的基地址


/*********************************************************************************************************
** Function name:			main
**
** Descriptions:			Main function of the project 工程的主函数
**
** Input parameters:		None 无
** Returned value:		None 无
**         
** Used global variables:	None 无
** Calling modules:		None 无
**                      
** Created by:				Steven Zhou 周绍刚
** Created Date:		    2007-03-24
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void ADCInit(void)
{
	HWREG(SYSCTL_RCGC0) |= 0x00010000;				// 使能ADC模块的时钟
	HWREG(SYSCTL_RCGC0) |= 0x00000000;              // 125KSps采样率
	HWREG(ADC_BASE + ADC_O_ACTSS) = 0x00000000;		// 禁能所有采样序列
	HWREG(ADC_BASE + ADC_O_SSPRI) = 0x00000000;		// 设置采样序列0为最高优先级
	HWREG(ADC_BASE + ADC_O_EMUX) = 0x00000000;		// 采样序列0为处理器触发
	HWREG(ADC_BASE + ADC_O_SSMUX0) = 0x00000000;    // 采样序列0的第0步使用ADC0
	HWREG(ADC_BASE + ADC_O_SSCTL0) = 0x00000002;	// 采样序列0采样完第0步后结束
	HWREG(ADC_BASE + ADC_O_ACTSS) |= 0x00000001;	// 使能采样序列0
}

unsigned long GetADC(void)
{
	
	unsigned long ulData;

	HWREG(ADC_BASE + ADC_O_PSSI)   |= 0x00000001; // 处理器触发采样序列0
	while( (HWREG(ADC_BASE + ADC_O_X_SSFSTAT) & 0x00000100) ); //等待FIFO 0为非空,即等待转换结束
	ulData = HWREG(ADC_BASE + ADC_O_SSFIFO0);    // 读出10位转换结果
	ulData = (ulData*1000* 3) /1024;             // 换算成真实电压值,单位mV
	return ulData;

}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -