📄 ads7843.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 + -