adc.h

来自「PIC4455 ADC源程序」· C头文件 代码 · 共 87 行

H
87
字号
//==============================================================================
// 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 + =
减小字号Ctrl + -
显示快捷键?