傳感器簡介
RCWL0516傳感器是一款采用多普勒雷達技術、專門檢測物體移動的微波感應模塊。該模塊具有靈敏度高、感應距離遠、可靠性強、感應角度大、供電范圍廣等特點。廣泛應用於各種人體感應照明和防盜報警等場合。
RCWL_0516.c
1 /**
2 * @file RCWL_0516.c
3 * @brief
4 * @version 0.1
5 * @date 2019-06-28
6 *
7 * @copyright Copyright (c) 2019 Chipintelli Technology Co., Ltd.
8 *
9 */
10 /*-----------------------------------------------------------------------------
11 include
12 -----------------------------------------------------------------------------*/
13 #include "ci110x_gpio.h"
14 #include "ci110x_scu.h"
15 #include "ci110x_uart.h"
16 #include "ci_misc.h"
17 #include "ci_sensor.h"
18
19 /*-----------------------------------------------------------------------------
20 define
21 -----------------------------------------------------------------------------*/
22 #define RCWL_GPIO_GROUP (GPIO0)/*!< GPIO組 */
23 #define RCWL_GPIO_PIN (gpio_pin_2)/*!< GPIO pin腳 */
24 #define RCWL_GPIO_PAD (UART1_RX_PAD)/*!< GPIO對應PAD */
25 #define RCWL_GPIO_IRQ (GPIO0_IRQn)/*!< GPIO中斷 */
26
27 /*-----------------------------------------------------------------------------
28 extern
29 -----------------------------------------------------------------------------*/
30
31 /*-----------------------------------------------------------------------------
32 struct / enum / union
33 -----------------------------------------------------------------------------*/
34
35 /*-----------------------------------------------------------------------------
36 global
37 -----------------------------------------------------------------------------*/
38
39 /*-----------------------------------------------------------------------------
40 declare
41 -----------------------------------------------------------------------------*/
42
43 /*-----------------------------------------------------------------------------
44 function
45 -----------------------------------------------------------------------------*/
46 /**
47 * @brief 初始化 rcwl-0516
48 *
49 * @param irq_callback 中斷回調
50 * @retval RETURN_OK
51 * @retval RETURN_ERR
52 */
53 int32_t rcwl0516_open(void)
54 {
55 NVIC_EnableIRQ(RCWL_GPIO_IRQ);
56 Scu_SetIOReuse(RCWL_GPIO_PAD,FIRST_FUNCTION);
57 Scu_SetDeviceGate((unsigned int)RCWL_GPIO_GROUP,ENABLE);
58 Scu_Setdevice_Reset((unsigned int)RCWL_GPIO_GROUP);
59 Scu_Setdevice_ResetRelease((unsigned int)RCWL_GPIO_GROUP);
60 gpio_irq_trigger_config(RCWL_GPIO_GROUP,RCWL_GPIO_PIN,up_edges_trigger);
61 return RETURN_OK;
62 }
63
64 /**
65 * @brief 中斷回調函數
66 *
67 */
68 void rcwl0516_callback(void)
69 {
70 sensor_irq_inform(SENSOR_TYPE_MICROWAVE);
71 }
72
73 /**
74 * @brief rcwl-0516 ops
75 *
76 */
77 sensor_ops_t rcwl0516_ops =
78 {
79 rcwl0516_open,
80 };
81
82 /*-----------------------------------------------------------------------------
83 end of the file
84 -----------------------------------------------------------------------------*/
RCWL_0516.h
1 /**
2 * @file RCWL0516.h
3 * @brief RCWL0516傳感器的頭文件
4 * @version 0.1
5 * @date 2019-07-02
6 *
7 * @copyright Copyright (c) 2019 Chipintelli Technology Co., Ltd.
8 *
9 */
10
11 #ifndef __RCWL0516_H__
12 #define __RCWL0516_H__
13
14 /**
15 * @ingroup third_device_driver
16 * @defgroup RCWL0516
17 * @brief RCWL0516傳感器驅動
18 * @{
19 */
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 /*-----------------------------------------------------------------------------
26 include
27 -----------------------------------------------------------------------------*/
28
29 /*-----------------------------------------------------------------------------
30 define
31 -----------------------------------------------------------------------------*/
32
33 /*-----------------------------------------------------------------------------
34 extern
35 -----------------------------------------------------------------------------*/
36 extern sensor_ops_t rcwl0516_ops;
37
38 /*-----------------------------------------------------------------------------
39 struct / enum / union
40 -----------------------------------------------------------------------------*/
41
42 /*-----------------------------------------------------------------------------
43 global
44 -----------------------------------------------------------------------------*/
45
46 /*-----------------------------------------------------------------------------
47 function declare
48 -----------------------------------------------------------------------------*/
49
50 #ifdef __cplusplus
51 }
52 #endif
53
54 /**
55 * @}
56 */
57
58 #endif
59
60 /*-----------------------------------------------------------------------------
61 end of the file
62 -----------------------------------------------------------------------------*/