summaryrefslogtreecommitdiffstatshomepage
path: root/stm/servo.c
diff options
context:
space:
mode:
Diffstat (limited to 'stm/servo.c')
-rw-r--r--stm/servo.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/stm/servo.c b/stm/servo.c
index 4edac0c86d..ae266d7f65 100644
--- a/stm/servo.c
+++ b/stm/servo.c
@@ -90,7 +90,7 @@ void servo_init(void) {
/******************************************************************************/
/* Micro Python bindings */
-mp_obj_t pyb_servo_set(mp_obj_t port, mp_obj_t value) {
+STATIC mp_obj_t pyb_servo_set(mp_obj_t port, mp_obj_t value) {
int p = mp_obj_get_int(port);
int v = mp_obj_get_int(value);
if (v < 50) { v = 50; }
@@ -104,7 +104,9 @@ mp_obj_t pyb_servo_set(mp_obj_t port, mp_obj_t value) {
return mp_const_none;
}
-mp_obj_t pyb_pwm_set(mp_obj_t period, mp_obj_t pulse) {
+MP_DEFINE_CONST_FUN_OBJ_2(pyb_servo_set_obj, pyb_servo_set);
+
+STATIC mp_obj_t pyb_pwm_set(mp_obj_t period, mp_obj_t pulse) {
int pe = mp_obj_get_int(period);
int pu = mp_obj_get_int(pulse);
TIM2->ARR = pe;
@@ -112,17 +114,19 @@ mp_obj_t pyb_pwm_set(mp_obj_t period, mp_obj_t pulse) {
return mp_const_none;
}
+MP_DEFINE_CONST_FUN_OBJ_2(pyb_pwm_set_obj, pyb_pwm_set);
+
typedef struct _pyb_servo_obj_t {
mp_obj_base_t base;
uint servo_id;
} pyb_servo_obj_t;
-static void servo_obj_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t self_in, mp_print_kind_t kind) {
+STATIC void servo_obj_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t self_in, mp_print_kind_t kind) {
pyb_servo_obj_t *self = self_in;
print(env, "<Servo %lu>", self->servo_id);
}
-static mp_obj_t servo_obj_angle(mp_obj_t self_in, mp_obj_t angle) {
+STATIC mp_obj_t servo_obj_angle(mp_obj_t self_in, mp_obj_t angle) {
pyb_servo_obj_t *self = self_in;
#if MICROPY_ENABLE_FLOAT
machine_int_t v = 152 + 85.0 * mp_obj_get_float(angle) / 90.0;
@@ -140,23 +144,25 @@ static mp_obj_t servo_obj_angle(mp_obj_t self_in, mp_obj_t angle) {
return mp_const_none;
}
-static MP_DEFINE_CONST_FUN_OBJ_2(servo_obj_angle_obj, servo_obj_angle);
+STATIC MP_DEFINE_CONST_FUN_OBJ_2(servo_obj_angle_obj, servo_obj_angle);
-static const mp_method_t servo_methods[] = {
+STATIC const mp_method_t servo_methods[] = {
{ "angle", &servo_obj_angle_obj },
{ NULL, NULL },
};
-static const mp_obj_type_t servo_obj_type = {
+STATIC const mp_obj_type_t servo_obj_type = {
{ &mp_type_type },
.name = MP_QSTR_Servo,
.print = servo_obj_print,
.methods = servo_methods,
};
-mp_obj_t pyb_Servo(mp_obj_t servo_id) {
+STATIC mp_obj_t pyb_Servo(mp_obj_t servo_id) {
pyb_servo_obj_t *o = m_new_obj(pyb_servo_obj_t);
o->base.type = &servo_obj_type;
o->servo_id = mp_obj_get_int(servo_id);
return o;
}
+
+MP_DEFINE_CONST_FUN_OBJ_1(pyb_Servo_obj, pyb_Servo);