📄 iar-
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http:// www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File Name: Main.c
** Last modified Date: 2007.09.18
** Last Version: v1.0
** Description: The basic experiment of AD convertor AD转换基础实验
**
**--------------------------------------------------------------------------------------------------------
** Created By: Kang qinhua
** Created date: 2007.09.18
** Version: v1.0
** Descriptions: The original version 初始版本
**
**--------------------------------------------------------------------------------------------------------
** Modified by: Kang qinhua
** Modified date: 2008.01.13
** Version: v1.1
** Description:
**
*********************************************************************************************************/
#include "PLLSet.h"
#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: 无
** output parameters: 无
** Returned value: 无
**********************************************************************************************************/
int main(void)
{
unsigned long ulData = 0x00;
PLLSet();
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 */
while(1) {
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 */
}
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -