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

📄 ads7843.h

📁 触摸屏驱动芯片ADS7843在LINUX2.6内核下的驱动程序
💻 H
字号:
#ifndef _ADS_7843_H_#define _ADS_7843_H_// ADS7843 Control Byte bit defines#define ADS7843_CMD_START	0x0080#define ADS7843_ADDR_BIT	4#define ADS7843_ADDR_MASK 	(0x7<<ADS7843_ADDR_BIT)#define ADS7843_MEASURE_X  	(0x5<<ADS7843_ADDR_BIT)#define ADS7843_MEASURE_Y  	(0x1<<ADS7843_ADDR_BIT)#define ADS7843_MEASURE_Z1 	(0x3<<ADS7843_ADDR_BIT)#define ADS7843_MEASURE_Z2 	(0x4<<ADS7843_ADDR_BIT)#define ADS7843_8BITS     	(1<<3)#define ADS7843_12BITS    	0#define ADS7843_SER       	(1<<2)#define ADS7843_DFR       	0#define ADS7843_PWR_BIT   	0#define ADS7843_PD      	0#define ADS7843_ADC_ON  	(0x1<<ADS7843_PWR_BIT)#define ADS7843_REF_ON  	(0x2<<ADS7843_PWR_BIT)#define ADS7843_REF_ADC_ON 	(0x3<<ADS7843_PWR_BIT)#define MEASURE_8BIT_X\    (unsigned short)(ADS7843_CMD_START | ADS7843_MEASURE_X | ADS7843_8BITS | ADS7843_DFR | ADS7843_PD)#define MEASURE_8BIT_Y\    (unsigned short)(ADS7843_CMD_START | ADS7843_MEASURE_Y | ADS7843_8BITS | ADS7843_DFR | ADS7843_PD)#define MEASURE_12BIT_X \    (unsigned short)(ADS7843_CMD_START | ADS7843_MEASURE_X | ADS7843_12BITS | ADS7843_DFR | ADS7843_PD)#define MEASURE_12BIT_Y \    (unsigned short)(ADS7843_CMD_START | ADS7843_MEASURE_Y | ADS7843_12BITS | ADS7843_DFR | ADS7843_PD)#define MEASURE_12BIT_Z1 \    (unsigned char)(ADS7843_MEASURE_Z1 | ADS7843_12BITS | ADS7843_DFR | ADS7843_PD)#define MEASURE_12BIT_Z2 \    (unsigned char)(ADS7843_MEASURE_Z2 | ADS7843_12BITS | ADS7843_DFR | ADS7843_PD)/* *  Hardware Pins */#define TS_CLK	AT91_PIN_PD1#define TS_CS	   	AT91_PIN_PD5#define TS_DIN	AT91_PIN_PD2#define TS_DOUT	AT91_PIN_PD3/* * This structure is nonsense - millisecs is not very useful * since the field size is too small.  Also, we SHOULD NOT * be exposing jiffies to user space directly. */struct ts_event {	unsigned short		pressure;	unsigned short		x;	unsigned short		y;	unsigned short		pad;	struct timeval	stamp;};#define NR_EVENTS	16struct ads7843_dev{	struct semaphore	sem;	struct cdev cdev;	int			use_count;		u8			evt_head;	u8			evt_tail;	struct ts_event	events[NR_EVENTS];	struct timer_list	timer;	};#define ads7843_ts_evt_pending(ts)	((volatile u8)(ts)->evt_head != (ts)->evt_tail)#define ads7843_ts_evt_get(ts)		((ts)->events + (ts)->evt_tail)#define ads7843_ts_evt_pull(ts)		((ts)->evt_tail = ((ts)->evt_tail + 1) & (NR_EVENTS - 1))#define ads7843_ts_evt_clear(ts)	((ts)->evt_head = (ts)->evt_tail = 0)#endif /* _ADS_7843_H_ */ 

⌨️ 快捷键说明

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