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

📄 adclib.h

📁 用c编写的基于ARM的max1246的驱动程序源码和应用示例。
💻 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 + -