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.
 | |
| }
 |