39#ifdef PREINIT_SUPPORTED
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
78#define SERVO2_PWM_MAX 4095
79#define SERVO2_PWM_MIN 0
80#define SERVO2_PWM_ZERO_DEGREE_PULSE 3980
81#define SERVO2_PWM_180_DEGREE_PULSE 3468
87#define SERVO2_ANGLE_MIN 0
88#define SERVO2_ANGLE_MAX 180
89#define SERVO2_CHANNEL_0 0
90#define SERVO2_CHANNEL_1 1
91#define SERVO2_CHANNEL_2 2
92#define SERVO2_CHANNEL_3 3
93#define SERVO2_CHANNEL_4 4
94#define SERVO2_CHANNEL_5 5
95#define SERVO2_CHANNEL_6 6
96#define SERVO2_CHANNEL_7 7
97#define SERVO2_CHANNEL_8 8
98#define SERVO2_CHANNEL_9 9
99#define SERVO2_CHANNEL_10 10
100#define SERVO2_CHANNEL_11 11
101#define SERVO2_CHANNEL_12 12
102#define SERVO2_CHANNEL_13 13
103#define SERVO2_CHANNEL_14 14
104#define SERVO2_CHANNEL_15 15
105#define SERVO2_CHANNEL_ALL 16
106#define SERVO2_NUM_CHANNELS 16
112#define SERVO2_DEF_FREQ 256000ul
113#define SERVO2_DEF_DC 0.5
131#define SERVO2_MAP_MIKROBUS( cfg, mikrobus ) \
132 cfg.sout = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
133 cfg.sin = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
134 cfg.sclk = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
135 cfg.xlat = MIKROBUS( mikrobus, MIKROBUS_CS ); \
136 cfg.blank = MIKROBUS( mikrobus, MIKROBUS_AN ); \
137 cfg.gsclk = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
138 cfg.xerr = MIKROBUS( mikrobus, MIKROBUS_INT )
#define SERVO2_NUM_CHANNELS
Definition servo2.h:106
err_t servo2_init(servo2_t *ctx, servo2_cfg_t *cfg)
Servo 2 initialization function.
void servo2_update_output(servo2_t *ctx)
Servo 2 update output function.
err_t servo2_set_duty_cycle(servo2_t *ctx, float duty_cycle)
Servo 2 sets PWM duty cycle.
void servo2_set_xlat_pin(servo2_t *ctx, uint8_t state)
Servo 2 set XLAT pin function.
void servo2_set_blank_pin(servo2_t *ctx, uint8_t state)
Servo 2 set BLANK pin function.
err_t servo2_set_channel_pwm(servo2_t *ctx, uint8_t ch_num, uint16_t pwm_out)
Servo 2 set channel PWM function.
err_t servo2_pwm_stop(servo2_t *ctx)
Servo 2 stop PWM module.
err_t servo2_set_angle(servo2_t *ctx, uint8_t ch_num, uint8_t angle)
Servo 2 set angle function.
uint8_t servo2_get_xerr_pin(servo2_t *ctx)
Servo 2 get XERR pin state function.
err_t servo2_pwm_start(servo2_t *ctx)
Servo 2 start PWM module.
void servo2_write_data(servo2_t *ctx, uint8_t *data_in, uint8_t len)
Servo 2 write data function.
void servo2_cfg_setup(servo2_cfg_t *cfg)
Servo 2 configuration object setup function.
uint8_t servo2_get_sout_pin(servo2_t *ctx)
Servo 2 get SOUT pin state function.
void servo2_set_sin_pin(servo2_t *ctx, uint8_t state)
Servo 2 set SIN pin function.
void servo2_set_sclk_pin(servo2_t *ctx, uint8_t state)
Servo 2 set SCLK pin function.
servo2_return_value_t
Servo 2 Click return value data.
Definition servo2.h:196
@ SERVO2_OK
Definition servo2.h:197
@ SERVO2_ERROR
Definition servo2.h:198
Servo 2 Click configuration object.
Definition servo2.h:174
pin_name_t sclk
Definition servo2.h:177
pin_name_t sin
Definition servo2.h:178
pin_name_t xerr
Definition servo2.h:184
uint32_t dev_pwm_freq
Definition servo2.h:187
pin_name_t blank
Definition servo2.h:183
pin_name_t sout
Definition servo2.h:179
pin_name_t gsclk
Definition servo2.h:180
pin_name_t xlat
Definition servo2.h:176
Servo 2 Click context object.
Definition servo2.h:148
digital_out_t xlat
Definition servo2.h:150
digital_out_t sin
Definition servo2.h:153
digital_in_t xerr
Definition servo2.h:157
digital_out_t blank
Definition servo2.h:151
uint32_t pwm_freq
Definition servo2.h:163
digital_out_t sclk
Definition servo2.h:152
digital_in_t sout
Definition servo2.h:156
uint16_t pwm_out[SERVO2_NUM_CHANNELS]
Definition servo2.h:165
pwm_t pwm
Definition servo2.h:160