📄 adclib.h
字号:
//----------------------------------------------------------------------------
//
// FILE NAME VERSION
// ADClib.h 1.0
//
// DESCRIPTION
// ADC definitions and functions declaration for S3C44B0X
//
// HISTORY:
// 2005.12.15 Arthur Zhu Initial
//----------------------------------------------------------------------------
#ifndef __ADCLIB_H__
#define __ADCLIB_H__
#include "predef.h" // for conditional compile
#include "def.h" // Global definition
#include "lib.h" // General functions
#include "44breg.h" // S3C44B0X register definitions
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __ADC_AD7706__
#endif // end of __ADC_AD7706__
#ifdef __ADC_MAX1246__
#define MAX1246_CMD_LEN 8
#define MAX1246_DAT_LEN 16
/* Command control word */
#define MAX1246_START (1 << 7)
#define MAX1246_UNI (1 << 3)
#define MAX1246_BIP (0 << 3)
#define MAX1246_DIF (0 << 2)
#define MAX1246_SGL (1 << 2)
#define MAX1246_CH0 (0x1 << 4)
#define MAX1246_CH1 (0x5 << 4)
#define MAX1246_CH2 (0x2 << 4)
#define MAX1246_CH3 (0x6 << 4)
#define MAX1246_CH0CH1 (0x1 << 4)
#define MAX1246_CH2CH3 (0x2 << 4)
#define MAX1246_CH1CH0 (0x5 << 4)
#define MAX1246_CH3CH2 (0x6 << 4)
#define MAX1246_PD_FU (0x0)
#define MAX1246_PD_FA (0x1)
#define MAX1246_PD_iCLK (0x2)
#define MAX1246_PD_eCLK (0x3)
/* S3C44B0X */
// 都是I/O口模拟, 都设置为I/O口
// PORT E GROUP PORT C GROUP
/* BIT 0 -> CSn BIT 11 -> SHDNn */
/* OUT IN/OUT */
/* 01 00/01 */
// MAX1246_SHDNn; // MAX1246 Shut down pin, active low GPC11
// Define __MAX1246_FAST__ to let nSHDN float for fast convert, or for not so fast
#define __MAX1246_FAST__
// Set the GPC11 -> input to let SHDNn float for fast convert
#define MAX1246_SHDNn_FLOAT {rPCONC = rPCONC & ~(0x03 << 22);}
// Set the GPC11 -> output to use SHDNn for not more fast convert
#define MAX1246_SHDNn_USE {rPCONC = rPCONC & ~(0x03 << 22) | (0x01 << 22);}
#define MAX1246_SHDNn_VALID {rPDATC = rPDATC & ~(0x01 << 11);}
#define MAX1246_SHDNn_NOVALID {rPDATC = rPDATC | (0x01 << 11);}
// MAX1246_CSn; // MAX1246 Chip select, active low GPE0
// MAX1246_SCLK; // 串行数据时钟上升沿入,下降沿出, GPF8
// MAX1246_DIN; // 串行数据输出,接MAX1246的数据输入, GPF5
// MAX1246_DOUT; // 数据输入,接MAX1246的数据输出, GPF7
// MAX1246_SSTRB; // 数据选通输入,接MAX1246的数据选通输出, GPF6
// Set PORT GPF5, GPF6, GPF7, GPF8 and disable pull-up resistor
#define MAX1246_PORTSET {rPCONF = rPCONF & ~(0xFFF << 10) | (0x201 << 10); rPUPF |= (0xF << 5);}
#define MAX1246_CSn_PORTSET {rPCONE = rPCONE & ~(0x03) | (0x01);}
#define MAX1246_CSn_VALID {rPDATE = rPDATE & ~(0x01);}
#define MAX1246_CSn_NOVALID {rPDATE = rPDATE | (0x01);}
#define MAX1246_SCLK_CLR {rPDATF = rPDATF & ~(0x01 << 8);}
#define MAX1246_SCLK_SET {rPDATF = rPDATF | (0x01 << 8);}
#define MAX1246_DIN_CLR {rPDATF = rPDATF & ~(0x01 << 5);}
#define MAX1246_DIN_SET {rPDATF = rPDATF | (0x01 << 5);}
#define MAX1246_DOUT ((rPDATF >> 7) & 0x01)
#define MAX1246_SSTRB ((rPDATF >> 6) & 0x01)
#define MAX1246_CMD_DLY 1
#define MAX1246_DAT_DLY 1
#define MAX1246_CONV_DLY 10
// ADCdrv.c
extern void ADC_init (void);
extern void MAX1246_WR_CMD (unsigned int);
extern short ADC_RD_DAT (unsigned int);
// ADCcmd.c
extern short ADC_RD_AVG (unsigned int, unsigned char);
#endif // end of __ADC_MAX1246__
#ifdef __cplusplus
}
#endif
#endif /* end of __ADCLIB_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -