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

📄 a2d.c

📁 老外写得最新arm 库很多值得学习的基于mcu得c函数写法
💻 C
字号:
/*! \file a2d.c \brief Analog-to-Digital Converter Driver for LPC2000. */
//*****************************************************************************
//
// File Name	: 'a2d.c'
// Title		: Analog-to-Digital Converter Driver for LPC2000
// Author		: Pascal Stang - Copyright (C) 2006
// Created		: 2006.04.09
// Revised		: 2006.04.15
// Version		: 0.1
// Target MCU	: LPC2000 ARM processors
// Editor Tabs	: 4
//
// This code is distributed under the GNU Public License
//		which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************

// system includes
#include "lpc2000.h"
#include "global.h"

// local includes
#include "a2d.h"

void a2dInit(void)
{
	// set ADC to:
	// - CLKDIV as appropriate
	// - single conversion mode
	// - 10-bit accuracy
	// - powered-up
	ADCR = (((PCLK/4500000))<<8) | ADCR_CLKS_10BIT | ADCR_PDN;
}

int a2dConvert(int channel)
{
	uint32_t result=0;

	// start conversion on requested channel
	ADCR &= ~(ADCR_SEL_MASK|ADCR_START_NOW);	// clear previous channel and conversion
	ADCR |= (1<<channel);	// select new channel
	ADCR |= ADCR_START_NOW;	// start conversion

	// wait for end-of-conversion
	while(!(result & ADDR_DONE)) result = ADDR;

	// return data
	return (result & ADDR_VALUE_MASK)>>6;
}

⌨️ 快捷键说明

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