a2d.c

来自「老外写得最新arm 库很多值得学习的基于mcu得c函数写法」· C语言 代码 · 共 57 行

C
57
字号
/*! \file a2d.c \brief Analog-to-digital Converter Driver for ADuC7000. */
//*****************************************************************************
//
// File Name	: 'a2d.c'
// Title		: Analog-to-digital Converter Driver for ADuC7000
// Author		: Pascal Stang - Copyright (C) 2005
// Created		: 2/5/2005
// Revised		: 2/5/2005
// Version		: 0.1
// Target MCU	: Analog Devices ADuC7000 ARM Series
// Editor Tabs	: 4
//
// This code is distributed under the GNU Public License
//		which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************

#include "aduc7026.h"

#include "global.h"
#include "a2d.h"

// functions
void a2dInit(void)
{
	#define ADCENCONV			(1<<7)
	#define ADCBUSY				(1<<6)
	#define ADCPWR				(1<<5)
	#define ADCMODE_SE			(0x00<<3)
	#define ADCMODE_DIFF		(0x01<<3)
	#define ADCMODE_PDIFF		(0x02<<3)
	#define ADCMODE_MASK		(0x03<<3)
	#define ADCCONV_SINGLE		(0x03)
	#define ADCCONV_CONT		(0x04)

	// set ADC to ON
	ADCCON |= ADCPWR;

	// select reference
	REFCON = 0x01;	// internal 2.5V reference
}

int a2dConvert(int channel)
{
	// set conversion mode to single-ended
	ADCCON &= ~ADCMODE_MASK;
	ADCCON |= ADCMODE_SE;
	// set channel for conversion
	ADCCP = channel;
	// start conversion
	ADCCON |= ADCENCONV | ADCCONV_SINGLE;
	// wait until complete
	while(!ADCSTA);
	// return result
	return ADCDAT>>16;
}

⌨️ 快捷键说明

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