STM32F0 Donanımsal PWM MikroC kodları

63 Kişi Okudu

Aşağıda yazmış olduğumuz program; işlemcinin 1. ve 4. kanalına bağlı motorları 100 ms lik aralıklarla hızlandıran bir programdır.

Kullandığımız STM32F0 PWM kanalları 16 bir çözünürlüktedir. Bu da demek oluyor ki çözünürlüğümüz 65535 maksimum değer alır. Oldukça iyi.

 

int b=0 ;

void pwm(int motor1 , int motor2, int bekle) {
  PWM_TIM1_Set_Duty(motor1, _PWM_NON_INVERTED, _PWM_CHANNEL1);
  PWM_TIM1_Set_Duty(motor2, _PWM_NON_INVERTED, _PWM_CHANNEL4);
  Vdelay_ms(bekle) ;
}

void main() {

 PWM_TIM1_Init(10000);
 PWM_TIM1_Start(_PWM_CHANNEL1, _GPIO_MODULE_TIM1_CH1_PA8);
 PWM_TIM1_Start(_PWM_CHANNEL4, _GPIO_MODULE_TIM1_CH4_PA11);
  
   do{
    pwm(b,b,100);
    b=b+10;
    if(b=4000){
    b=0;    
    }
  }while(1);
 }
}

Yayınlayan

Ahmet Yasin CİVAN

Mekatronik Mühendisi, Gömülü Yazılım Geliştiricisi.