示例#1
0
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);
}
示例#2
0
/// \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;
    }
}
示例#3
0
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;
}
示例#4
0
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;
}
示例#5
0
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));
}
示例#6
0
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;
}
示例#7
0
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;
}