mp_obj_t pyb_led_value(mp_obj_t self_in) { pyb_led_obj_t *self = self_in; uint8_t val = mp_hal_testLed(LED_ID(self)-1); if(val==0) val=1; else val=0; return MP_OBJ_NEW_SMALL_INT(val); }
/// \method intensity([value]) /// Get or set the led intensity: /// /// - With no argument, return led intensity (0 to 15). /// - With `value` given, set the led intensity (0 to 15) STATIC mp_obj_t pyb_led_intensity(mp_uint_t n_args, const mp_obj_t *args) { pyb_led_obj_t *self = args[0]; int ln = LED_ID(self); if(ln!=4 && ln!=5 && ln!=6) { nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "LED %d does not support intensity", ln)); return mp_const_none; } if (n_args == 1) { // get intensity return MP_OBJ_NEW_SMALL_INT(mp_hal_getPwmRGBValue(LED_ID(self)-4)); } else { // set intensity mp_hal_setPwmRGBValue(LED_ID(self)-4,mp_obj_get_int(args[1])); return mp_const_none; } }
mp_obj_t pyb_led_toggle(mp_obj_t self_in) { pyb_led_obj_t *self = self_in; mp_hal_toggleLed(LED_ID(self)-1); return mp_const_none; }
mp_obj_t pyb_led_off(mp_obj_t self_in) { pyb_led_obj_t *self = self_in; mp_hal_setLed(LED_ID(self)-1, 1); return mp_const_none; }
void pyb_led_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) { pyb_led_obj_t *self = self_in; mp_printf(print, "LED(%u)", LED_ID(self)); }
mp_obj_t pyb_led_toggle(mp_obj_t self_in) { pyb_led_obj_t *self = self_in; led_toggle(LED_ID(self)); return mp_const_none; }
mp_obj_t pyb_led_off(mp_obj_t self_in) { pyb_led_obj_t *self = self_in; led_state(LED_ID(self), 0); return mp_const_none; }