zhangbo
19 小时以前 01b6f2525f47ee781d86a2495dfcd17f68ccbafd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
#include "SC7A22H.h"
#include "mk_trace.h"
 
 
 
//ÂÖѯ»ñÈ¡ÈýÖáÊý¾ÝʾÀý
void SC7A22H_get_rawdata_Polling()
{
    signed short SL_Read_Buf[3]={0};
    signed short SL_XYZ_Data[3]={0};
    unsigned char reg_value=0;
        uint8_t data;
        uint8_t buff[6];
//1.³õʼ»¯Í¨ÐŽӿÚ
    SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
 
//2.¸´Î»Ð¾Æ¬
    SL_SC7A22H_Soft_Reset();
        SL_SC7A22H_Delay_Ms(1000);
        
//3.¼ì²éÊÇ·ñÄܶÁȡоƬWHO AM I¼Ä´æÆ÷        
      SL_SC7A22H_Check();
 
//4.Æô¶¯ACC    
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7F, 0x00);//goto 0x00
  SL_SC7A22H_Delay_Ms(10);    
      SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC        
      SL_SC7A22H_Delay_Ms(10);    
         
//5.ÉèÖÃÁ¿³Ì    
      SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  ¡À4G    
 
//6.ÉèÖÃÊä³öËÙÂʸüС¢¹¤×÷ģʽ    
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x07);//ACC_CONF 50Hz  ¸ßÐÔÄÜ        
      SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x50);//I2C_CFG    
        
    
    while(1)
    {
        SL_SC7A22H_Delay_Ms(1000);
//7.Ñ­»·¶ÁÈ¡¼ÓËÙ¶ÈÊý¾Ý
        SL_SC7A22H_RawData_Read(&gsensor_soft_fifo_buffer[0].sXAxisVal, &gsensor_soft_fifo_buffer[0].sYAxisVal, &gsensor_soft_fifo_buffer[0].sZAxisVal);
            
            }
 
}
 
uint8_t fifo_ready_flag=0;
 
/***************FIFOģʽ»ñÈ¡XYZÊý¾ÝˮλʾÀý*********/
void SC7A22H_get_rawdata_fifo_wtm_interrupt()
{
    signed short SL_Read_Buf[3]={0};
    signed short SL_XYZ_Data[3]={0};
    unsigned char reg_value=0;
        uint8_t data;
        uint8_t FIFO_stat;
        uint8_t buff[6];
//1.³õʼ»¯Í¨ÐŽӿÚ
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
 
//2.¸´Î»Ð¾Æ¬
    SL_SC7A22H_Soft_Reset();//ÎÞÎÊÌâ
        
//3.¼ì²éÊÇ·ñÄܶÁȡоƬWHO AM I¼Ä´æÆ÷        
      SL_SC7A22H_Check();//ÎÞÎÊÌâ
 
//4.Æô¶¯ACC        
    SL_SC7A22H_I2c_Spi_Write(SL_SC7A22H_SPI_IIC_MODE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC
    SL_SC7A22H_Delay_Ms(15);
        
//5.ÉèÖÃÁ¿³Ì    
      SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  ¡À4G    
 
                    
//6.FIFOģʽ
    SL_SC7A22H_I2c_Spi_Read(SL_SPI_IIC_INTERFACE, 0x05, 1, &reg_value);
        reg_value=reg_value&0xEF;//addr_add_auto disable
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, reg_value);  
//AOI1 ÖжÏ×÷Ϊ FIFO ´¥·¢Ä£Ê½ÖжÏʼþÊäÈ룬FIFOģʽ
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x1D, 0x10);//fifo mode set
//WTM ãÐÖµÉèÖÃ:    75    
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x1E, 0x4B);//fifo fth set     
//FIFOʹÄÜ
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x1C, 0x04);//fifo enable
 
//7.ÖжÏÅäÖà int1Öжϴ¥·¢Ê±Êä³ö¸ßµçƽ£¨Ä¬ÈÏµÍµçÆ½£©, FIFOˮλÖжÏÔÚ INT1 ÉÏ
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x06, 0x09);//INT_CFG1     
 
//8.ÉèÖÃÊä³öËÙÂʸüС¢¹¤×÷ģʽ    
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x06);//ACC_CONF 25Hz  µÍ¹¦ºÄģʽ            
        
    fifo_ready_flag=0;
    while(1)
    {
            if(fifo_ready_flag)
            {
            
                fifo_ready_flag=0;
              SL_SC7A22H_FIFO_Read(&gsensor_soft_fifo_buffer[0].sXAxisVal, &gsensor_soft_fifo_buffer[0].sYAxisVal, &gsensor_soft_fifo_buffer[0].sZAxisVal);
 
            }
    }
}
 
//Óû§Ðè×Ô¶¨ÒåÖжϷþÎñº¯Êý£¬µ±FIFOÊý¾ÝÂúʱINT1»á´ÓµÍµçƽ±äΪ¸ßµçƽ£¬Óû§¿ÉÒÔIO²¶×½ÉÏÉýÑØ²úÉúÖжÏ
//ÔÚÆäÖжϷþÎñÖе÷Óøĺ¯Êý
void fifo_ready_interrupt_callback()
{
    fifo_ready_flag=1;
}
 
 
 
uint8_t double_click_flag=0;
/*******Ë«»÷¼ì²âʾÀý*********/
void SC7A22H_get_double_click()
{
    unsigned char reg_value=0;
        unsigned char CLICK_status;
//1.³õʼ»¯Í¨ÐŽӿÚ
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
 
//2.¸´Î»Ð¾Æ¬
    SL_SC7A22H_Soft_Reset();//ÎÞÎÊÌâ
        
//3.¼ì²éÊÇ·ñÄܶÁȡоƬWHO AM I¼Ä´æÆ÷        
      SL_SC7A22H_Check();//ÎÞÎÊÌâ
        
//4,¼ÓËٶȼÆÊ¹ÄÜ
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC
        SL_SC7A22H_Delay_Ms(200);
        
//5,Á¿³ÌÉèÖãº+-4G
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  ¡À4G
    
//6£¬Çû÷ÖжÏÉèÖÃ
//Êä³öÊý¾Ý¼Ä´æÆ÷²»¸üÐÂÖ±µ½ MSB ºÍ LSB ±»¶ÁÈ¡ 2,µØÖ·×ÔÔö£¬Á¬Ðø¶ÁдʱµØÖ·×ÔÔö
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x50);//I2C_CFG
//ÍÆÍìÊä³öʹÄÜ,    Öжϴ¥·¢Ê±Êä³ö¸ßµçƽ£¨Ä¬ÈÏµÍµçÆ½£©£¬CLICK ÖжÏÔÚ INT1 ÉÏ    
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x06, 0x07);//INT_CFG1 CLICK TO INT1
//½ûÖ¹Â˲¨
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x08, 0x00);//Disable DLPF
//AOI ÖжÏʹÄÜ£¬AOI1Â˲¨Ê¹ÄÜ£¬Ëø´æ AOI1_CFG ¼Ä´æÆ÷ÉÏÖ¸¶¨µÄÖжÏÏìÓ¦
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x3F, 0x11);//HPIS1=1 LIR_AOI1
//XYZ Öá¸ßʼþÖжϻòÕß Z Öá·½Ïò¼ì²âÖжÏʹÄÜ£¬
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x30, 0x2A);//xyz for aoi1 or event
//AIO1ãÐÖµ£º4G----32mg*8=256mg
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x32, 0x08);//aoi1 vth
//ʶ±ðAIO1ʼþµÄ×îС³ÖÐøÊ±¼ä
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x33, 0x02);//aoi1 tth
    
//7£¬Çû÷ÅäÖÃ
//ÐèÒª½«0x7F£¨SEG_SEL£©ÅäÖÃ0x90ºóÔÙ½øÐзÃÎʵļĴæÆ÷¼°µØÖ·ºÍ³õÖµÆ÷
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7F, 0x90);//goto 0x90
        SL_SC7A22H_Delay_Ms(1);            
//Êä³öÖжϱØÐëÂú×ãÉèÖõÄÇû÷ãÐÖµ¸öÊý²ÅÄÜÊä³öÖжϣ¬·ñÔòÎÞÖжÏÊä³ö
//Ëø´æCLICK ÖжÏ״̬,£ºÊ¹ÄÜ XYZ ÖáÊý¾Ý²ÎÓëÇû÷¼ì²â
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x38, 0x1F);//XYZ CLICK ENABLE  AND LATCH INT LEVEL                
    //Çû÷ǰÊý¾ÝÎȶ¨Ê±³¤ÉèÖÃ------20ms£¨400hz£©
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x52);//CLICK_COEFF1
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x9A);//CLICK_COEFF2
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x42, 0x04);//CLICK_COEFF3
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x43, 0x52);//CLICK_COEFF4  //0x52ÖеÄ2±íʾÇû÷´ÎÊý
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7F, 0x00);//goto 0x00
        SL_SC7A22H_Delay_Ms(1);    
//8£¬µÍ¹¦ºÄģʽʹÄÜ  400HzÊä³ö    
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x0A);//ACC_CONF 0x0A=400Hz
//9, ¶ÁÈ¡CLICK_SRCµÄ״̬»ú
   SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, 0x39, 1, &CLICK_status);
 
//µÈ´ýÖжϴ¥·¢
   double_click_flag=0;
    while(1)
    {
            if(double_click_flag)
            {
                 double_click_flag=0;        
         SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, 0x39, 1, &CLICK_status);
               printf("SC7A22H_INT1_SRC:%x\r\n",CLICK_status);
                
            }
                        
    }
}
 
 
//Óû§Ðè×Ô¶¨ÒåÖжϷþÎñº¯Êý£¬µ±Ô˶¯¼ì²âʼþ´¥·¢Ê±INT1»á´Ó¸ßµçƽ±äΪµÍµçƽ£¬Óû§¿ÉÒÔIO²¶×½Ï½µÑزúÉúÖжÏ
//ÔÚÆäÖжϷþÎñÖе÷Óøĺ¯Êý
void double_click_interrupt_callback()
  double_click_flag=1;
}
 
 
 
/***************¼Æ²½¼ì²âʾÀý*********/
uint8_t Pedo_flag=0;
void SC7A22H_get_Pedo()
{
    unsigned char reg_value=0;
        unsigned char Pedo_status;
    unsigned int  Pedo_Count;
//1.³õʼ»¯Í¨ÐŽӿÚ
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
//2.¸´Î»Ð¾Æ¬
    SL_SC7A22H_Soft_Reset();//ÎÞÎÊÌâ        
//3.¼ì²éÊÇ·ñÄܶÁȡоƬWHO AM I¼Ä´æÆ÷        
//      SL_SC7A22H_Check();//ÎÞÎÊÌâ        
//4,¼ÓËٶȼÆÊ¹ÄÜ
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC
        SL_SC7A22H_Delay_Ms(200);        
//5,Á¿³ÌÉèÖãº+-4G
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  ¡À4G
//6£¬ÖжÏÉèÖÃ
//Êä³öÊý¾Ý¼Ä´æÆ÷²»¸üÐÂÖ±µ½ MSB ºÍ LSB ±»¶ÁÈ¡ 2,µØÖ·×ÔÔö£¬Á¬Ðø¶ÁдʱµØÖ·×ÔÔö
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x50);//I2C_CFG        
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x06, 0x10);//DELTA_STEP ÖжÏÔÚ INT1 ÉÏ                
//Æô¶¯Â˲¨
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x08, 0x05);//Enable DLPF
    
//7£¬¼Æ²½ÉèÖÃ
  SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
    SL_SC7A22H_Delay_Ms(1);
    //¿¹Âí´ïºÍÒôÀÖ¸ÉÈÅʹÄÜ,¼Æ²½¹¦ÄÜʹÄÜ
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x3A, 0x05);
    //¼Æ²½Ä£¿éÂ˲¨Æ÷ÉèÖÃ
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x46, 0x4F);
    //¼Æ²½ÁéÃô¶È:100,×îÓżƲ½Öáʱ¼äãÐÖµÉèÖÃ:11
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x47, 0x23);            
    //×î¼ÑÊý¾ÝÔ´Çл»ãÐÖµÉèÖãº00£¬Æðʼ²½ÊýÉèÖãº100£¬¹æÂɼƲ½µÈ¼¶£º011
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x48, 0x8F);
    //µ¥²½ãÐÖµÏÂÏÞ¿ØÖÆ:100  ,µ¥²½ãÐÖµÉÏÏÞ¿ØÖÆ:101
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x49, 0x1C);    
    //XYZ ²ÎÓë¼Æ²½,¼Æ²½ÔëÉù:0100
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x4A, 0x04);
    //ÔëÉù¼ÆÊýãÐÖµÉèÖÃ:100
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x4B, 0x8C);
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);
    SL_SC7A22H_Delay_Ms(1); 
//8£¬µÍ¹¦ºÄģʽʹÄÜ  50HzÊä³ö    
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x26);////ACC_CONF 0x07=50Hz
 
//µÈ´ýÖжϴ¥·¢
   Pedo_flag=0;
 
}
uint8_t pedo_upload_count=0;
uint8_t pedo_upload_status=0;
extern uint8_t Pedo_flag;
void SC7A22H_get_Pedo_task()
{
            if(Pedo_flag)
            {
             Pedo_flag=0;
       pedo_upload_status=SL_SC7A22H_Get_Motion();                
       pedo_upload_count=SL_SC7A22H_Get_Pedo_Count();
             LOG_INFO(TRACE_MODULE_APP,"SC7A22H_Pedo_status:%d\r\n",pedo_upload_status);
             LOG_INFO(TRACE_MODULE_APP,"SC7A22H_Pedo_Count:%d\r\n",pedo_upload_count);
            }
 
}
 
//¼Æ²½¹¦ÄÜÆô¶¯º¯Êý
 
//Óû§Ðè×Ô¶¨ÒåÖжϷþÎñº¯Êý£¬µ±Ô˶¯¼ì²âʼþ´¥·¢Ê±INT1»á´Ó¸ßµçƽ±äΪµÍµçƽ£¬Óû§¿ÉÒÔIO²¶×½Ï½µÑزúÉúÖжÏ
//ÔÚÆäÖжϷþÎñÖе÷Óøĺ¯Êý
void Pedo_interrupt_callback()
  Pedo_flag=1;
}
 
 
 
/***************̧Íó¼ì²âʾÀý*********/
uint8_t Wrist_flag=0;
void SC7A22H_get_Wrist()
{
    unsigned char reg_value=0;
        unsigned char Wrist_status;
    unsigned int Wrist_Count;
//1.³õʼ»¯Í¨ÐŽӿÚ
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
 
//2.¸´Î»Ð¾Æ¬
    SL_SC7A22H_Soft_Reset();//ÎÞÎÊÌâ
        
//3.¼ì²éÊÇ·ñÄܶÁȡоƬWHO AM I¼Ä´æÆ÷        
      SL_SC7A22H_Check();//ÎÞÎÊÌâ
        
//4,¼ÓËٶȼÆÊ¹ÄÜ
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x7D, 0x04);//PWR_CTRL ENABLE ACC
        SL_SC7A22H_Delay_Ms(200);
        
//5,Á¿³ÌÉèÖãº+-4G
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x01);//ACC_RANGE  ¡À4G
    
//6£¬ÖжÏÉèÖÃ
//Êä³öÊý¾Ý¼Ä´æÆ÷²»¸üÐÂÖ±µ½ MSB ºÍ LSB ±»¶ÁÈ¡ 2,µØÖ·×ÔÔö£¬Á¬Ðø¶ÁдʱµØÖ·×ÔÔö
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x50);//I2C_CFG        
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x06, 0x15);//WRIST_ON_FLAG|WRIST_DOWN_FLAG ÖжÏÔÚ INT1 ÉÏ                
//Æô¶¯Â˲¨
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x08, 0x05);//Enable DLPF
    
//7£¬Ì§ÍóÉèÖÃ
  SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
  SL_SC7A22H_Delay_Ms(1);
  SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x90);
    SL_SC7A22H_Delay_Ms(1);
    //ÊÖÍó¼ì²âʹÄÜ
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x3E, 0x10);
    //ÔÊÐí½Ç¶ÈÎó²îÉèÖÃ:16LSB, ÌùƬλÖÃÉèÖãºÕýÃæº¸½ÓλÖÃ3
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x51, 0x33);
    //̧ÊÖÄ¿±ê½Ç¶ÈÖµÉèÖÃλ:¶ÔÓ¦¼ÓËÙ¶ÈÖµ4
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x52, 0x02);
    //̧ÊÖʶ±ðÁéÃô¶ÈÉèÖãº16LSB£¬Ì§ÊÖ״̬´¥·¢ËùÐè³ÖÐøÊ±¼äµÄÉèÖãº0.4s,À뿪̧ÊÖ״̬´¥·¢ËùÐè³ÖÐøÊ±¼ä:0.4s
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x53, 0x93);    
    SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE,0x7F, 0x00);
    SL_SC7A22H_Delay_Ms(1);
//8£¬µÍ¹¦ºÄģʽʹÄÜ  50HzÊä³ö    
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0x26);////ACC_CONF 0x07=50Hz
//µÈ´ýÖжϴ¥·¢
  Wrist_flag=0;
    while(1)
    {
            if(Wrist_flag)
            {
             Wrist_flag=0;
             Wrist_status=SL_SC7A22H_Get_Wrist_Status();
 
            }
                        
    }
}
 
 
//Óû§Ðè×Ô¶¨ÒåÖжϷþÎñº¯Êý£¬µ±Ô˶¯¼ì²âʼþ´¥·¢Ê±INT1»á´Ó¸ßµçƽ±äΪµÍµçƽ£¬Óû§¿ÉÒÔIO²¶×½Ï½µÑزúÉúÖжÏ
//ÔÚÆäÖжϷþÎñÖе÷Óøĺ¯Êý
void Wrist_interrupt_callback()
  Wrist_flag=1;
}
 
 
 
 
 
 
void SC7A22H_self_test()
{
    signed short SL_Read_Buf[3]={0};
    signed short SL_XYZ_Data[3]={0};
    unsigned char reg_value=0;
        uint8_t data;
        uint8_t buff[6];
//1.³õʼ»¯Í¨ÐŽӿÚ
   SL_SC7A22H_I2c_Spi_Init(SL_SC7A22H_SPI_IIC_MODE);
//2.¸´Î»Ð¾Æ¬
    SL_SC7A22H_Soft_Reset();//ÎÞÎÊÌâ        
//3.¼ì²éÊÇ·ñÄܶÁȡоƬWHO AM I¼Ä´æÆ÷        
      SL_SC7A22H_Check();//ÎÞÎÊÌâ    
//¼ÓËٶȼÆÊ¹ÄÜ
    SL_SC7A22H_I2c_Spi_Write(SL_SC7A22H_SPI_IIC_MODE, 0x7D, 0x04);//¼ÓËٶȼÆÊ¹ÄÜ
    delay_ms(15);        
//µÍ¹¦ºÄģʽʹÄÜ, µÍ¹¦ºÄģʽ:1¸öÊý¾Ýƽ¾ùÒ»´Î£¬50HzÊä³ö    
  
//È«Á¿³ÌÑ¡Ôñ:¡À8G        
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x41, 0x02);//ACC_RANGE  ¡À8G
    SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, 0x6D, 1, &reg_value);
        delay_ms(60);  
                
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x40, 0xac);//ACC_CONF 0x07=50Hz                
    delay_ms(60); 
//µØÖ·×ÔÔö£¬Á¬Ðø¶ÁдʱµØÖ·×ÔÔö,Á¬Ðø¸üÐÂ
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x05, 0x10);//I2C_CFG
    delay_ms(60); 
//        SL_SC7A22H_I2c_Spi_Read(SL_SC7A22H_SPI_IIC_MODE, 0x6D, 1, &reg_value);
//×Ô²âÊÔģʽʹÄÜ---Õý·½Ïò£¬    Æ«×ªµÍÕñ·ù            
        SL_SC7A22H_I2c_Spi_Write(SL_SPI_IIC_INTERFACE, 0x6D, 0x05);//
 
   delay_ms(60);    
    while(1)
    {
 
            SL_SC7A22H_RawData_Read(&gsensor_soft_fifo_buffer[0].sXAxisVal, &gsensor_soft_fifo_buffer[0].sYAxisVal, &gsensor_soft_fifo_buffer[0].sZAxisVal);
            
            delay_ms(1000);
    }
}