Arkadaşlar merhaba ;
STM32f103c işlemcisi olan modül var elimde. Bu modül ile pwm üretmek istiyorum. Fakat ne yaptıysam başarılı olamadım. Yazdığım kodu ekliyorum sizce nerede hata yapıyorum ? A8 pininden pwm almak istedim. Pini çıkış yaptım pwm ayarlarını da yaptım lakin hiç hareket yok :( yardımcı olabilirseniz memnun olurum.
analog = 2500; // initial value for current_duty
period = PWM_TIM1_Init(5000);
PWM_TIM1_Set_Duty(analog, _PWM_NON_INVERTED, _PWM_CHANNEL1); // Set current duty for PWM_TIM1
PWM_TIM1_Start(_PWM_CHANNEL1, &_GPIO_MODULE_TIM1_CH1_PA8);
kodun tamamı bu mu?
aşağıdaki kodu kullanarak pwm sinyalini kontrol etmiştim.
period= PWM_TIM4_Init(10000);
PWM_TIM4_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL2);
PWM_TIM4_Start(_PWM_CHANNEL2, &_GPIO_MODULE_TIM4_CH2_PB7);
pwm_yuzde= period/100;
while(1)
{
PWM_TIM4_Set_Duty(pwm_yüzde*50, _PWM_NON_INVERTED, _PWM_CHANNEL2);//10 khz %50 pwm
}
@muratmertgenc hocam verdiğin kodda çalışıyor b7 den pwm alabiliyorum lakin ayarları tim1 kanal 1 e göre yapınca çalışmıyor .. acaba kütüphanelerde mi problem var ?
Alıntı yapılan: enes1153 - 21 Ekim 2018, 16:14:22@muratmertgenc hocam verdiğin kodda çalışıyor b7 den pwm alabiliyorum lakin ayarları tim1 kanal 1 e göre yapınca çalışmıyor .. acaba kütüphanelerde mi problem var ?
Sn.
@enes1153 herbacağın timer kanalı aynı değil ve istediğin timer i atayamazsın. CubeMX programını indirip pinlere bakmanız lazım.
timer1 pwm kanalları:
ch1_PA8
ch2_PA9
ch3_PA10
ch4_PA11
timer2 pwm kanalları:
ch1_PA0
ch2_PA1
ch3_PA2
ch4_PA3
timer3 pwm kanalları:
ch1_PA6
ch2_PA7
ch3_PB0
ch4_PB1
timer4 pwm kanalları:
ch1_PB6
ch2_PB7
ch3_PB8
ch4_PB9
Bütün kanalları seçerek yaptım. Bazı kanalar diğer timerlerde çalışabilir. Hepsini seçince sıralama şeklinde göstermiş olabilir örn. tim2_ch3 başka kanalda daolabilir gibi. Kolay gelsin.