632d8efa05
PWM implementation uses a timer and interrupts (FRC1), taken from Espressif's/NodeMCU's implementation and adapted for our use. 8 channels are supported, on pins 0, 2, 4, 5, 12, 13, 14, 15. Usage: import machine pwm0 = machine.PWM(machine.Pin(0)) pwm0.freq(1000) pwm0.duty(500) Frequency is shared (ie the same) for all channels. Frequency is between 1 and 1000. Duty is between 0 and 1023.
20 lines
554 B
C
20 lines
554 B
C
extern const mp_obj_type_t pyb_pin_type;
|
|
extern const mp_obj_type_t pyb_pwm_type;
|
|
extern const mp_obj_type_t pyb_adc_type;
|
|
extern const mp_obj_type_t pyb_rtc_type;
|
|
extern const mp_obj_type_t pyb_i2c_type;
|
|
extern const mp_obj_type_t pyb_spi_type;
|
|
|
|
typedef struct _pyb_pin_obj_t {
|
|
mp_obj_base_t base;
|
|
uint16_t pin_id;
|
|
uint16_t phys_port;
|
|
uint32_t periph;
|
|
uint16_t func;
|
|
} pyb_pin_obj_t;
|
|
|
|
uint mp_obj_get_pin(mp_obj_t pin_in);
|
|
pyb_pin_obj_t *mp_obj_get_pin_obj(mp_obj_t pin_in);
|
|
int pin_get(uint pin);
|
|
void pin_set(uint pin, int value);
|