First PWM test
This commit is contained in:
parent
06ecbf4137
commit
e1c963e10b
|
@ -17,4 +17,6 @@ pico_enable_stdio_usb(${CMAKE_PROJECT_NAME} 1)
|
||||||
pico_enable_stdio_uart(${CMAKE_PROJECT_NAME} 0)
|
pico_enable_stdio_uart(${CMAKE_PROJECT_NAME} 0)
|
||||||
pico_add_extra_outputs(${CMAKE_PROJECT_NAME})
|
pico_add_extra_outputs(${CMAKE_PROJECT_NAME})
|
||||||
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} pico_stdlib)
|
target_link_libraries(${CMAKE_PROJECT_NAME}
|
||||||
|
pico_stdlib
|
||||||
|
hardware_pwm)
|
||||||
|
|
54
src/main.c
54
src/main.c
|
@ -1,40 +1,56 @@
|
||||||
#include "hardware/gpio.h"
|
#include "hardware/gpio.h"
|
||||||
|
#include "hardware/pwm.h"
|
||||||
//#include <stdio.h>
|
//#include <stdio.h>
|
||||||
#include <pico/stdlib.h>
|
#include <pico/stdlib.h>
|
||||||
|
|
||||||
#define LED1_PIN 13
|
#define LEDY_PIN 13
|
||||||
#define LED2_PIN 14
|
#define LEDG_PIN 14
|
||||||
#define LED3_PIN 15
|
#define LEDR_PIN 15
|
||||||
|
|
||||||
|
#define POWER_SWITCH_PIN 10
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
//stdio_init_all();
|
//stdio_init_all();
|
||||||
//printf("Hello, world!\n");
|
//printf("Hello, world!\n");
|
||||||
|
|
||||||
gpio_init(LED1_PIN);
|
bool power_switch_state = false;
|
||||||
gpio_init(LED2_PIN);
|
|
||||||
gpio_init(LED3_PIN);
|
|
||||||
|
|
||||||
gpio_set_dir(LED1_PIN, true);
|
gpio_init(LEDY_PIN);
|
||||||
gpio_set_dir(LED2_PIN, true);
|
gpio_init(LEDG_PIN);
|
||||||
gpio_set_dir(LED3_PIN, true);
|
gpio_init(LEDR_PIN);
|
||||||
|
|
||||||
gpio_put(LED1_PIN, true);
|
gpio_set_dir(LEDY_PIN, true);
|
||||||
gpio_put(LED2_PIN, true);
|
gpio_set_dir(LEDG_PIN, true);
|
||||||
gpio_put(LED3_PIN, true);
|
gpio_set_dir(LEDR_PIN, true);
|
||||||
|
|
||||||
|
gpio_put(LEDY_PIN, true);
|
||||||
|
gpio_put(LEDG_PIN, true);
|
||||||
|
gpio_put(LEDR_PIN, true);
|
||||||
|
|
||||||
|
// set up PWM for 50 kHz @ 512 steps resolution
|
||||||
|
uint slice_num = pwm_gpio_to_slice_num(POWER_SWITCH_PIN);
|
||||||
|
|
||||||
|
pwm_set_clkdiv_int_frac(slice_num, 4, (88 << 4) / 100);
|
||||||
|
gpio_set_function(POWER_SWITCH_PIN, GPIO_FUNC_PWM);
|
||||||
|
pwm_set_wrap(slice_num, 512);
|
||||||
|
pwm_set_chan_level(slice_num, PWM_CHAN_A, 410);
|
||||||
|
pwm_set_enabled(slice_num, true);
|
||||||
|
|
||||||
sleep_ms(3000);
|
sleep_ms(3000);
|
||||||
|
|
||||||
|
gpio_put(LEDY_PIN, false);
|
||||||
|
gpio_put(LEDG_PIN, false);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
gpio_put(LED1_PIN, true);
|
gpio_put(LEDR_PIN, true);
|
||||||
gpio_put(LED2_PIN, false);
|
gpio_put(LEDG_PIN, false);
|
||||||
gpio_put(LED3_PIN, false);
|
|
||||||
sleep_ms(500);
|
sleep_ms(500);
|
||||||
gpio_put(LED1_PIN, false);
|
gpio_put(LEDY_PIN, true);
|
||||||
gpio_put(LED2_PIN, true);
|
gpio_put(LEDR_PIN, false);
|
||||||
sleep_ms(500);
|
sleep_ms(500);
|
||||||
gpio_put(LED2_PIN, false);
|
gpio_put(LEDY_PIN, false);
|
||||||
gpio_put(LED3_PIN, true);
|
gpio_put(LEDG_PIN, true);
|
||||||
sleep_ms(500);
|
sleep_ms(500);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue