35 lines
		
	
	
		
			1022 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1022 B
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
 | 
						|
 *
 | 
						|
 * SPDX-License-Identifier: BSD-3-Clause
 | 
						|
 */
 | 
						|
 | 
						|
// Output PWM signals on pins 0 and 1
 | 
						|
 | 
						|
#include "pico/stdlib.h"
 | 
						|
#include "hardware/pwm.h"
 | 
						|
 | 
						|
int main() {
 | 
						|
    /// \tag::setup_pwm[]
 | 
						|
 | 
						|
    // Tell GPIO 0 and 1 they are allocated to the PWM
 | 
						|
    gpio_set_function(0, GPIO_FUNC_PWM);
 | 
						|
    gpio_set_function(1, GPIO_FUNC_PWM);
 | 
						|
 | 
						|
    // Find out which PWM slice is connected to GPIO 0 (it's slice 0)
 | 
						|
    uint slice_num = pwm_gpio_to_slice_num(0);
 | 
						|
 | 
						|
    // Set period of 4 cycles (0 to 3 inclusive)
 | 
						|
    pwm_set_wrap(slice_num, 3);
 | 
						|
    // Set channel A output high for one cycle before dropping
 | 
						|
    pwm_set_chan_level(slice_num, PWM_CHAN_A, 1);
 | 
						|
    // Set initial B output high for three cycles before dropping
 | 
						|
    pwm_set_chan_level(slice_num, PWM_CHAN_B, 3);
 | 
						|
    // Set the PWM running
 | 
						|
    pwm_set_enabled(slice_num, true);
 | 
						|
    /// \end::setup_pwm[]
 | 
						|
 | 
						|
    // Note we could also use pwm_set_gpio_level(gpio, x) which looks up the
 | 
						|
    // correct slice and channel for a given GPIO.
 | 
						|
}
 |