charger19  2.1.0.0
charger19.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 CHARGER19_H
29 #define CHARGER19_H
30 
31 #ifdef __cplusplus
32 extern "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 #include "drv_analog_in.h"
52 
73 #define CHARGER19_VOUT_1V8 0x00
74 #define CHARGER19_VOUT_2V1 0x01
75 #define CHARGER19_VOUT_2V7 0x02
76 #define CHARGER19_VOUT_3V0 0x03
77 
82 #define CHARGER19_SHIP_MODE_ON 0x01
83 #define CHARGER19_SHIP_MODE_OFF 0x00
84  // charger19_set
86 
101 #define CHARGER19_MAP_MIKROBUS( cfg, mikrobus ) \
102  cfg.an = MIKROBUS( mikrobus, MIKROBUS_AN ); \
103  cfg.sac = MIKROBUS( mikrobus, MIKROBUS_RST ); \
104  cfg.vs1 = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
105  cfg.vs2 = MIKROBUS( mikrobus, MIKROBUS_INT )
106  // charger19_map // charger19
109 
114 typedef struct
115 {
116  digital_out_t sac;
117  digital_out_t vs1;
118  digital_out_t vs2;
120  analog_in_t adc;
122 } charger19_t;
123 
128 typedef struct
129 {
130  pin_name_t an;
131  pin_name_t sac;
132  pin_name_t vs1;
133  pin_name_t vs2;
135  analog_in_resolution_t resolution;
136  float vref;
139 
144 typedef enum
145 {
147  CHARGER19_ERROR = -1
148 
150 
167 
182 
196 
208 err_t charger19_read_an_pin_value ( charger19_t *ctx, uint16_t *data_out );
209 
223 err_t charger19_read_an_pin_voltage ( charger19_t *ctx, float *data_out );
224 
236 err_t charger19_set_vout ( charger19_t *ctx, uint8_t vout_sel );
237 
247 void charger19_set_ship_mode ( charger19_t *ctx, uint8_t ship_sel );
248 
260 err_t charger19_get_vbat ( charger19_t *ctx, float *vbat );
261 
262 #ifdef __cplusplus
263 }
264 #endif
265 #endif // CHARGER19_H
266  // charger19
268 
269 // ------------------------------------------------------------------------ END
charger19_t::sac
digital_out_t sac
Definition: charger19.h:116
CHARGER19_OK
@ CHARGER19_OK
Definition: charger19.h:146
charger19_cfg_t::vs2
pin_name_t vs2
Definition: charger19.h:133
charger19_cfg_t::sac
pin_name_t sac
Definition: charger19.h:131
charger19_default_cfg
err_t charger19_default_cfg(charger19_t *ctx)
Charger 19 default configuration function.
charger19_cfg_t::an
pin_name_t an
Definition: charger19.h:130
charger19_t
Charger 19 Click context object.
Definition: charger19.h:115
charger19_set_ship_mode
void charger19_set_ship_mode(charger19_t *ctx, uint8_t ship_sel)
Charger 19 set Ship mode function.
charger19_get_vbat
err_t charger19_get_vbat(charger19_t *ctx, float *vbat)
Charger 19 get battery voltage function.
charger19_t::vs2
digital_out_t vs2
Definition: charger19.h:118
charger19_read_an_pin_value
err_t charger19_read_an_pin_value(charger19_t *ctx, uint16_t *data_out)
Charger 19 read AN pin value function.
charger19_cfg_t::resolution
analog_in_resolution_t resolution
Definition: charger19.h:135
charger19_cfg_t::vs1
pin_name_t vs1
Definition: charger19.h:132
charger19_t::adc
analog_in_t adc
Definition: charger19.h:120
charger19_t::vs1
digital_out_t vs1
Definition: charger19.h:117
charger19_cfg_setup
void charger19_cfg_setup(charger19_cfg_t *cfg)
Charger 19 configuration object setup function.
charger19_set_vout
err_t charger19_set_vout(charger19_t *ctx, uint8_t vout_sel)
Charger 19 set output voltage function.
charger19_cfg_t::vref
float vref
Definition: charger19.h:136
charger19_read_an_pin_voltage
err_t charger19_read_an_pin_voltage(charger19_t *ctx, float *data_out)
Charger 19 read AN pin voltage level function.
charger19_return_value_t
charger19_return_value_t
Charger 19 Click return value data.
Definition: charger19.h:145
CHARGER19_ERROR
@ CHARGER19_ERROR
Definition: charger19.h:147
charger19_cfg_t
Charger 19 Click configuration object.
Definition: charger19.h:129
charger19_init
err_t charger19_init(charger19_t *ctx, charger19_cfg_t *cfg)
Charger 19 initialization function.