📄 touch_drv.lst
字号:
96 =1
97 =1 #define KEY_REPEAT KEY_0
98 =1 #define KEY_STOP KEY_1
99 =1 #define KEY_ALBUM KEY_2
100 =1 #define KEY_PALY_PAUSE KEY_3
101 =1 #define KEY_S16 KEY_4
102 =1
103 =1 #define KEY_EQ_PROG KEY_5
104 =1 #define KEY_RADIO KEY_6
105 =1 #define KEY_CD KEY_7
106 =1 #define KEY_VOL_INC KEY_8
107 =1
108 =1 #define KEY_TAPE KEY_9
109 =1 #define KEY_MainPower KEY_10
110 =1 #define KEY_VOL_DEC KEY_11
111 =1
112 =1 #define KEY_BAND KEY_12
113 =1 #define KEY_FF KEY_13
114 =1
115 =1 #define KEY_FR KEY_14
116 =1
117 =1 #define Kbd_key_pressed() ((P1&0x1f) != 0x1f)
118 =1
119 =1 /*----- Disp clock task states -----*/
120 =1 #define DISP_IDLE 0
121 =1 #define DISP_INIT 1
122 =1 #define DISP_TICK0 2
123 =1 #define DISP_TICK1 3
124 =1 #define DISP_SEC 4
125 =1 #define DISP_MIN 5
126 =1 #define DISP_MS_BUSY 6
127 =1 #define DISP_PRO 7
128 =1
129 =1 #define KBD_DEBOUNCE_TEMPO 20 /* debounce period: 8 ms */
130 =1 #define KBD_DEBOUNCE_INIT 0
131 =1 #define SCHEDULER_TICK 10
132 =1
133 =1 #define TIM_LOW 0xf0
134 =1 #define TIM_HIGH 0xd8
135 =1 //#define T0_set_TMOD() (TMOD = TMOD | 0x01)
136 =1
137 =1 #define I2C_ID0 0xa0
138 =1 #define I2C_ID1 0xa1
139 =1 #define I2C_ADD 0x00
140 =1
141 =1 /*----- Volume Control Start -----*/
142 =1 #define SC7313_ADD 0x88
C51 COMPILER V8.01 TOUCH_DRV 08/07/2006 11:04:36 PAGE 6
143 =1 #define RADIO_IN 0x5c
144 =1 #define CD_IN 0x59 //01011001
145 =1 #define TAPE_IN 0x5e
146 =1
147 =1 /*----- Touch Pad Control Define -----*/
148 =1 #define TOUCH_REQUEST 0x52
149 =1 #define TOUCH_RETURN 0x53
150 =1
151 =1 #define FWVER_REG 0x00
152 =1 #define BUTTON_REG 0x10
153 =1 #define XY_REG 0x20
154 =1 #define ANGLE_REG 0x30
155 =1 #define TPSEN_REG 0x40
156 =1 #define FWID_REG 0xf0
157 =1
158 =1 /*----- DTS system define -----*/
159 =1 #define Mem_StartAdd 0x10
160 =1 #define Mem_EndAdd 0x1f
161 =1
162 =1 #define Mem_test 0
163 =1 #define Mem_5 5
164 =1 #define Mem_10 10
165 =1 #define DTS_Mem_Size Mem_10
166 =1
167 =1 #define DTS_FreStart 878
168 =1 #define DTS_FreEnd 1080
169 =1
170 =1 #if DTS_Mem_Size == Mem_5
=1 #define Mem_Fre0 878
=1 #define Mem_Fre1 900
=1 #define Mem_Fre2 100
=1 #define Mem_Fre3 960
=1 #define Mem_Fre4 1080
=1 #endif
177 =1
178 =1 #if DTS_Mem_Size == Mem_10
179 =1 #define Mem_Fre0 878
180 =1 #define Mem_Fre1 900
181 =1 #define Mem_Fre2 940
182 =1 #define Mem_Fre3 960
183 =1 #define Mem_Fre4 980
184 =1 #define Mem_Fre5 1000
185 =1 #define Mem_Fre6 1020
186 =1 #define Mem_Fre7 1040
187 =1 #define Mem_Fre8 1060
188 =1 #define Mem_Fre9 1080
189 =1 #endif
14 #include "Driver\io_def.h"
1 =1 /*H**************************************************************************
2 =1 * NAME: io_def.h
3 =1 *----------------------------------------------------------------------------
4 =1 * Copyright (c) 2006 Atmel.
5 =1 *----------------------------------------------------------------------------
6 =1 * RELEASE: C51 Sample
7 =1 * REVISION: 1.00
8 =1 *----------------------------------------------------------------------------
9 =1 * PURPOSE:
10 =1 *****************************************************************************/
11 =1
12 =1 /*_____ I N C L U D E S ____________________________________________________*/
13 =1
14 =1
C51 COMPILER V8.01 TOUCH_DRV 08/07/2006 11:04:36 PAGE 7
15 =1 #define DTS_DOUT P3_6
16 =1 #define DTS_DIN P3_4
17 =1 #define DTS_CLK P3_5
18 =1 #define DTS_CE P3_7
19 =1
20 =1 #define MPOWER P3_1
21 =1 #define CDPOWER P1_7
22 =1 #define TAPE_POWER P1_5
23 =1
24 =1 #define LCD_DA P0_0
25 =1 #define LCD_RW P0_1
26 =1 #define LCD_CS P0_2
27 =1
28 =1 #define ISDA P2_1
29 =1 #define ISCL P2_0
30 =1
31 =1 #define TOUCH_SDI P0_3
32 =1 #define TOUCH_SDO P0_4
33 =1 #define TOUCH_SCK P0_5
34 =1 #define TOUCH_SS P0_6
15 #include "Driver\touch_drv.h"
1 =1 /*H**************************************************************************
2 =1 * NAME: touch_drv.h
3 =1 *----------------------------------------------------------------------------
4 =1 * Copyright (c) 2006 Atmel.
5 =1 *----------------------------------------------------------------------------
6 =1 * RELEASE: C51 Sample
7 =1 * REVISION: 1.00
8 =1 *----------------------------------------------------------------------------
9 =1 * PURPOSE:
10 =1 *****************************************************************************/
11 =1
12 =1 /*_____ I N C L U D E S ____________________________________________________*/
13 =1
14 =1 bit Touch_PositionXY (void);
15 =1 Byte Touch_PositionA (void);
16 =1 bit Touch_Read (void);
17 =1 bit Touch_Write (Byte PID, Byte bRegister);
18 =1 Byte Touch_scanByteLSB (Byte bBit);
19 =1 void Touch_getMSB (Byte bByte);
20 =1 void Touch_start (void);
21 =1 void Touch_stop (void);
22 =1 bit Touch_Wait (void);
23 =1 void DelayX25us(Byte count);
24 =1
25 =1 extern idata Byte TouchPad[5];
16
17 /*F**************************************************************************
18 * NAME: Touch_PositionXY
19 *----------------------------------------------------------------------------
20 * PARAMS:
21 *
22 * return:
23 *----------------------------------------------------------------------------
24 * PURPOSE: 从Touch中读取XY Position数据
25 *----------------------------------------------------------------------------
26 * EXAMPLE:
27 *----------------------------------------------------------------------------
28 * NOTE:
29 *----------------------------------------------------------------------------
30 * REQUIREMENTS:
31 *****************************************************************************/
C51 COMPILER V8.01 TOUCH_DRV 08/07/2006 11:04:36 PAGE 8
32 bit Touch_PositionXY (void)
33 {
34 1
35 1 Touch_Write (TOUCH_REQUEST, XY_REG);
36 1 if(!(Touch_Wait())) {Touch_stop();return(0);}
37 1 if(!(Touch_Read())) {Touch_stop();return(0);}
38 1 TouchPad[2] = TouchPad[0]; /* TouchPad[2] is X position value */
39 1 TouchPad[3] = TouchPad[1]; /* TouchPad[3] is y position value */
40 1 return(1);
41 1
42 1 }
43
44 /*F**************************************************************************
45 * NAME: Touch_PositionA
46 *----------------------------------------------------------------------------
47 * PARAMS:
48 *
49 * return:
50 *----------------------------------------------------------------------------
51 * PURPOSE: 从Touch中读取Angol Position数据
52 *----------------------------------------------------------------------------
53 * EXAMPLE:
54 *----------------------------------------------------------------------------
55 * NOTE:
56 *----------------------------------------------------------------------------
57 * REQUIREMENTS:
58 *****************************************************************************/
59 Byte Touch_PositionA (void)
60 {
61 1 Touch_Write (TOUCH_REQUEST, ANGLE_REG);
62 1 if(!(Touch_Wait())) {Touch_stop();return(0);}
63 1 if(!(Touch_Read())) {Touch_stop();return(0);}
64 1 return(TouchPad[1]);
65 1 }
66
67 /*F**************************************************************************
68 * NAME: Touch_Read
69 *----------------------------------------------------------------------------
70 * PARAMS:
71 *
72 * return:
73 *----------------------------------------------------------------------------
74 * PURPOSE: 从Touch pad中读取数据操作
75 *----------------------------------------------------------------------------
76 * EXAMPLE:
77 *----------------------------------------------------------------------------
78 * NOTE:
79 *----------------------------------------------------------------------------
80 * REQUIREMENTS:
81 *****************************************************************************/
82 bit Touch_Read (void)
83 {
84 1 Byte bTemp = 0x00;
85 1
86 1 Touch_start();
87 1 bTemp = Touch_scanByteLSB(4); /* scan start(1),type(101) */
88 1 if( bTemp != 0x05) return(0);
89 1 bTemp = Touch_scanByteLSB(8); /* scan ID(0010),register(00xx) */
90 1 TouchPad[0] = Touch_scanByteLSB(8);
91 1 TouchPad[1] = Touch_scanByteLSB(8);
92 1 bTemp = Touch_scanByteLSB(4);
93 1 if( bTemp != 0x01) return(0);
C51 COMPILER V8.01 TOUCH_DRV 08/07/2006 11:04:36 PAGE 9
94 1 Touch_stop();
95 1 return(1);
96 1 }
97
98 /*F**************************************************************************
99 * NAME: Touch_Write
100 *----------------------------------------------------------------------------
101 * PARAMS:
102 *
103 * return:
104 *----------------------------------------------------------------------------
105 * PURPOSE: 向eTK0101的指定Register发送读数据请求
106 *----------------------------------------------------------------------------
107 * EXAMPLE:
108 *----------------------------------------------------------------------------
109 * NOTE:
110 *----------------------------------------------------------------------------
111 * REQUIREMENTS:
112 *****************************************************************************/
113 bit Touch_Write (Byte PID, Byte bRegister)
114 {
115 1 Touch_start();
116 1 Touch_getMSB(PID);
117 1 Touch_getMSB(bRegister);
118 1 Touch_getMSB(0x00);
119 1 Touch_getMSB(0x01);
120 1 Touch_stop();
121 1 return(1);
122 1 }
123
124 /*F**************************************************************************
125 * NAME: Touch_scanByteMSB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -