User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0117/proyectos/2012/i/final/stm32f4-discovery/pwm_h.meta failed
teaching:ie0117:proyectos:2012:i:final:stm32f4-discovery:pwm_h

This is an old revision of the document!


Pwm_6step_experiment.h

 
       #ifndef PWM_6STEP_EXPERIMENT_H
       #define PWM_6STEP_EXPERIMENT_H
       
       #include <libopencm3/stm32/f4/rcc.h>
       #include <libopencm3/stm32/f4/gpio.h>
       #include <libopencm3/stm32/f4/timer.h>
       #include <libopencm3/stm32/nvic.h>
       #include <libopencm3/stm32/exti.h>
       #include <math.h>
       
       #define system_freq 	168000000 			                //168MHz, System Clock frequency  
       #define pwm_freq 		64000				        //64KHz, frequency of the PWM wave, integer value, 
       #define prescale 		1					//prescale value, used to be able to have a bigger range of values for the pwm wave periods, see below.
       #define pwm_period_ARR 	system_freq/( pwm_freq*(prescale+1) )    	//this defines de pwm wave period based on the frequency of the clock 
       #define pwmfreq_f 		64000.0f	                        //frequency of the pwn, floating that the hardware can handle
       
       #define DOWN 0 	                                                        //value if DOWN
       #define UP 1 	                                                        //value if UP
       int direction=UP; 	                                                //variable that will indicate if the button will rise the speed or not
       #define sine_freq_increment  10.0f	                                //defines the change of frecuency that will happen each time the button is pressed.
       
       #define max_sine_freq		100.0f	                                //defines the top frecuency
       #define min_sine_freq		20.0f	                                //defines the bottom frecuency
       
       float current_freq = min_sine_freq+1.0f;                                 //define current frecuency of the sinusoidal waves
       
       #define repetition_counter_value 	0	                        //repetition counter, not used in this example but can be used to start a triggered   interruption after a certain number of events
       
       #define deadtime_percentage		0.10f	                        //defines the deadtime between the complementary outputs
       #define attenuation_value 		0.5f                            //attenuation value, allows to attenuate the amplitude of the wave witout changing it's frequency
       
       #define initial_duty_cycle		0.5f 
       
       #define PI 				3.1415926535f                   //PI value
       #define FALLING 0
       #define RISING 1
       
       u16 exti_direction = FALLING;
       
       #endif

Motor Control

INDEX

teaching/ie0117/proyectos/2012/i/final/stm32f4-discovery/pwm_h.1457364318.txt.gz · Last modified: 2022/09/20 00:08 (external edit)