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

📄 main.c

📁 EasyARM615在IAR上的实验源代码
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name:          Main.c
** Last modified Date: 2008.01.18
** Last Version:       v1.0
** Description:        The basic experiment of AD convertor AD转换基础实验
** 
**------------------------------------------------------------------------------------------------------
** Created By:         Kang qinhua
** Created date:       2008.01.18
** Version:            v1.0
** Descriptions:       The original version 初始版本
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** 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:		None 无
** Returned value:		    None 无
**         
** Used global variables:	None 无
** Calling modules:		    None 无
**                      
** Created by:				Kang qinhua
** Created Date:		    2008.01.18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int main(void)
{
	unsigned long ulData;
	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
	}
}

⌨️ 快捷键说明

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