motion2 2.0.0.0
motion2.h
Go to the documentation of this file.
1/****************************************************************************
2** Copyright (C) 2020 MikroElektronika d.o.o.
3** Contact: https://www.mikroe.com/contact
4**
5** Permission is hereby granted, free of charge, to any person obtaining a copy
6** of this software and associated documentation files (the "Software"), to deal
7** in the Software without restriction, including without limitation the rights
8** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9** copies of the Software, and to permit persons to whom the Software is
10** furnished to do so, subject to the following conditions:
11** The above copyright notice and this permission notice shall be
12** included in all copies or substantial portions of the Software.
13**
14** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20** USE OR OTHER DEALINGS IN THE SOFTWARE.
21****************************************************************************/
22
28#ifndef MOTION2_H
29#define MOTION2_H
30
31#ifdef __cplusplus
32extern "C"{
33#endif
34
39#ifdef PREINIT_SUPPORTED
40#include "preinit.h"
41#endif
42
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
45 #include "delays.h"
46 #endif
47#endif
48
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
51
72#define MOTION2_MODULE_ENABLE 0x00
73#define MOTION2_MODULE_DISABLE 0x01
74#define MOTION2_NO_DETECT_OBJECT 0x00
75#define MOTION2_DETECT_OBJECT 0x01
76
77 // motion2_set
78
93#define MOTION2_MAP_MIKROBUS( cfg, mikrobus ) \
94 cfg.en = MIKROBUS( mikrobus, MIKROBUS_RST ); \
95 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT );
96
97 // motion2_map
98 // motion2
99
104typedef struct
105{
106 // Output pins
107
108 digital_out_t en;
109
110 // Input pins
111
112 digital_in_t int_pin;
113
114} motion2_t;
115
120typedef struct
121{
122 // Additional gpio pins
123
124 pin_name_t en;
125 pin_name_t int_pin;
126
128
133typedef enum
134{
136 MOTION2_ERROR = -1
137
139 //
151
158
159
169
178
186void motion2_enable ( motion2_t *ctx, uint8_t state );
187
197
198#ifdef __cplusplus
199}
200#endif
201#endif // MOTION2_H
202
203 // motion2
204
205// ------------------------------------------------------------------------ END
motion2_pin_state_t
Definition motion2.h:153
err_t motion2_init(motion2_t *ctx, motion2_cfg_t *cfg)
Initialization function.
motion2_detect_state_t
Definition motion2.h:146
void motion2_cfg_setup(motion2_cfg_t *cfg)
Config Object Initialization function.
void motion2_enable(motion2_t *ctx, uint8_t state)
Enable motion sensor function.
uint8_t motion2_detect_state(motion2_t *ctx)
Get detection state function.
@ MOTION2_PIN_STATE_HIGH
Definition motion2.h:155
@ MOTION2_PIN_STATE_LOW
Definition motion2.h:154
@ MOTION2_NO_DETECT
Definition motion2.h:147
@ MOTION2_DETECTED
Definition motion2.h:148
motion2_return_value_t
Motion 2 Click return value data.
Definition motion2.h:134
@ MOTION2_OK
Definition motion2.h:135
@ MOTION2_ERROR
Definition motion2.h:136
Motion 2 Click configuration object.
Definition motion2.h:121
pin_name_t en
Definition motion2.h:124
pin_name_t int_pin
Definition motion2.h:125
Motion 2 Click context object.
Definition motion2.h:105
digital_in_t int_pin
Definition motion2.h:112
digital_out_t en
Definition motion2.h:108