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

📄 tsc2000.h

📁 嵌入式试验箱S3C2410的bootloader源代码
💻 H
字号:
/* * Functions to access the TSC2000 controller on TRAB board (used for scanning * thermo sensors) * * Copyright (C) 2003 Martin Krause, TQ-Systems GmbH, martin.krause@tqs.de * * Copyright (C) 2002 DENX Software Engineering, Wolfgang Denk, wd@denx.de * * See file CREDITS for list of people who contributed to this * project. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */#ifndef _TSC2000_H_#define _TSC2000_H_/* temperature channel multiplexer definitions */#define CON_MUX0         	(gpio->PCCON = (gpio->PCCON & 0x0FFFFFCFF) | 0x00000100)#define CLR_MUX0         	(gpio->PCDAT &= 0x0FFEF)#define SET_MUX0         	(gpio->PCDAT |= 0x00010)#define CON_MUX1         	(gpio->PCCON = (gpio->PCCON & 0x0FFFFF3FF) | 0x00000400)#define CLR_MUX1         	(gpio->PCDAT &= 0x0FFDF)#define SET_MUX1         	(gpio->PCDAT |= 0x00020)#define CON_MUX1_ENABLE  	(gpio->PCCON = (gpio->PCCON & 0x0FFFFCFFF) | 0x00001000)#define CLR_MUX1_ENABLE  	(gpio->PCDAT |= 0x00040)#define SET_MUX1_ENABLE  	(gpio->PCDAT &= 0x0FFBF)#define CON_MUX2_ENABLE  	(gpio->PCCON = (gpio->PCCON & 0x0FFFF3FFF) | 0x00004000)#define CLR_MUX2_ENABLE  	(gpio->PCDAT |= 0x00080)#define SET_MUX2_ENABLE  	(gpio->PCDAT &= 0x0FF7F)#define CON_MUX3_ENABLE  	(gpio->PCCON = (gpio->PCCON & 0x0FFFCFFFF) | 0x00010000)#define CLR_MUX3_ENABLE  	(gpio->PCDAT |= 0x00100)#define SET_MUX3_ENABLE  	(gpio->PCDAT &= 0x0FEFF)#define CON_MUX4_ENABLE  	(gpio->PCCON = (gpio->PCCON & 0x0FFF3FFFF) | 0x00040000)#define CLR_MUX4_ENABLE  	(gpio->PCDAT |= 0x00200)#define SET_MUX4_ENABLE  	(gpio->PCDAT &= 0x0FDFF)#define CON_SEL_TEMP_V_0 	(gpio->PCCON = (gpio->PCCON & 0x0FFCFFFFF) | 0x00100000)#define CLR_SEL_TEMP_V_0 	(gpio->PCDAT &= 0x0FBFF)#define SET_SEL_TEMP_V_0 	(gpio->PCDAT |= 0x00400)#define CON_SEL_TEMP_V_1 	(gpio->PCCON = (gpio->PCCON & 0x0FF3FFFFF) | 0x00400000)#define CLR_SEL_TEMP_V_1 	(gpio->PCDAT &= 0x0F7FF)#define SET_SEL_TEMP_V_1 	(gpio->PCDAT |= 0x00800)#define CON_SEL_TEMP_V_2 	(gpio->PCCON = (gpio->PCCON & 0x0FCFFFFFF) | 0x01000000)#define CLR_SEL_TEMP_V_2 	(gpio->PCDAT &= 0x0EFFF)#define SET_SEL_TEMP_V_2 	(gpio->PCDAT |= 0x01000)#define CON_SEL_TEMP_V_3 	(gpio->PCCON = (gpio->PCCON & 0x0F3FFFFFF) | 0x04000000)#define CLR_SEL_TEMP_V_3 	(gpio->PCDAT &= 0x0DFFF)#define SET_SEL_TEMP_V_3 	(gpio->PCDAT |= 0x02000)/* TSC2000 register definition */#define TSC2000_REG_X		((0 << 11) | (0 << 5))#define TSC2000_REG_Y		((0 << 11) | (1 << 5))#define TSC2000_REG_Z1		((0 << 11) | (2 << 5))#define TSC2000_REG_Z2		((0 << 11) | (3 << 5))#define TSC2000_REG_BAT1	((0 << 11) | (5 << 5))#define TSC2000_REG_BAT2	((0 << 11) | (6 << 5))#define TSC2000_REG_AUX1	((0 << 11) | (7 << 5))#define TSC2000_REG_AUX2	((0 << 11) | (8 << 5))#define TSC2000_REG_TEMP1	((0 << 11) | (9 << 5))#define TSC2000_REG_TEMP2	((0 << 11) | (0xA << 5))#define TSC2000_REG_DAC		((0 << 11) | (0xB << 5))#define TSC2000_REG_ZERO	((0 << 11) | (0x10 << 5))#define TSC2000_REG_ADC		((1 << 11) | (0 << 5))#define TSC2000_REG_DACCTL	((1 << 11) | (2 << 5))#define TSC2000_REG_REF		((1 << 11) | (3 << 5))#define TSC2000_REG_RESET	((1 << 11) | (4 << 5))#define TSC2000_REG_CONFIG	((1 << 11) | (5 << 5))/* bit definition of TSC2000 ADC register */#define TC_PSM          (1 << 15)#define TC_STS          (1 << 14)#define TC_AD3          (1 << 13)#define TC_AD2          (1 << 12)#define TC_AD1          (1 << 11)#define TC_AD0          (1 << 10)#define TC_RS1          (1 << 9)#define TC_RS0          (1 << 8)#define TC_AV1          (1 << 7)#define TC_AV0          (1 << 6)#define TC_CL1          (1 << 5)#define TC_CL0          (1 << 4)#define TC_PV2          (1 << 3)#define TC_PV1          (1 << 2)#define TC_PV0          (1 << 1)/* default value for TSC2000 ADC register for use with touch functions */#define DEFAULT_ADC		(TC_PV1 | TC_AV0 | TC_AV1 | TC_RS0)#define TSC2000_DELAY_BASE	500#define TSC2000_NO_SENSOR	-0x10000#define ERROR_BATTERY   220     /* must be adjusted, if R68 is changed on				 * TRAB */void tsc2000_write(unsigned short, unsigned short);unsigned short tsc2000_read (unsigned short);u16 tsc2000_read_channel (unsigned int);void tsc2000_set_mux (unsigned int);void tsc2000_set_range (unsigned int);void tsc2000_reg_init (void);s32 tsc2000_contact_temp (void);void spi_wait_transmit_done (void);void spi_init(void);int tsc2000_interpolate(long value, long data[][2], long *result);void adc_wait_conversion_done(void);static inline void SET_CS_TOUCH(void){	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();	gpio->PDDAT &= 0x5FF;}static inline void CLR_CS_TOUCH(void){	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();	gpio->PDDAT |= 0x200;}#endif	/* _TSC2000_H_ */

⌨️ 快捷键说明

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