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

📄 adc.h

📁 PIC4455 ADC源程序
💻 H
字号:
//==============================================================================
// DEVICE       = PICC-18
// VERSION      = 1.0
// DATE         = 11.08.2007
// LAST CHANGE  = -
// Developer    = Keith Yuen
// =============================================================================
// Description:  ADC Driver for PIC18F4455
// =============================================================================

#ifndef __ADC_H
#define __ADC_H

#include <pic18.h>

/****************************************************************
* CONSTANT
****************************************************************/
#define ADC_BIT_ALIGNMENT_LEFT	0
#define ADC_BIT_ALIGNMENT_RIGHT	1

#define ADC_MODE_8_BITS		1		// = Left alignment
#define ADC_MODE_10_BITS	0		// = RIght alignment


/****************************************************************
* SETTINGS - REGISTER
****************************************************************/

//register settings forPIC4455
#define ADC_CLOCK_48MHz		0x06
#define ADC_CLOCK_24MHz		0x02
#define ADC_CLOCK_20MHz		0x05
#define ADC_CLOCK_12MHz		0x05
#define ADC_CLOCK_8MHz		0x01
#define ADC_CLOCK_4MHz		0x04

#define ADC_SET_CHANNEL_MASK		0x3C	//0b00111100
#define ADC_SET_ANALOG_PORT_MASK 	0x0F	//ob00001111
#define ADC_SET_ANALOG_PORT_MASK 	0x0F	//ob00001111
#define ADC_SET_CLOCK_MASK			0x07	//0b00000111

/****************************************************************
* SETTINGS
****************************************************************/
//SETTINGS, CPU frequency
#define ADC_CLOCK	ADC_CLOCK_48MHz

#define ADC_DEFAULT_CH		0
#define ADC_DEFAULT_MODE	ADC_MODE_8_BITS


/****************************************************************
* PUBLIC FUNCTIONS - SETTINGS
****************************************************************/

//Init ADC
void ADC_Init(void);
//Set the no. of Analog port to use
void ADC_SetAnalogPort(unsigned char port);
//Set ADC MUX Channel
void ADC_SetChannel(unsigned char ch);
//Set 8bits mode(Left alignment) / 10 bits mode(Right alignment)
void ADC_SetMode(unsigned char mode);

/****************************************************************
* PUBLIC FUNCTIONS - USE
****************************************************************/

//Start convertion
#define ADC_Convert()	GODONE = 1
//Wait unit convertion finish
#define ADC_Wait()	while(GODONE){;}

//Get a byte in 8 bits mode
#define ADC_GetByte()	ADRESH
//Get MSB 8bits value in 10 bits mode
#define ADC_GetMSB()	ADRESH
//Get LSB 8bits value in 10 bits mode
#define ADC_GetLSB()	ADRESL
//Get 10 bits integer value in 10 bits mode
unsigned int ADC_GetInt(void);



#endif

⌨️ 快捷键说明

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