setup_power_pwm() Fonksiyonu

Başlatan iqsuz, 05 Aralık 2013, 10:05:18

iqsuz

öncelikle herkese kolay gelsin.
bir projemde 18f4431 kullanıcam ve 6 adet pwm lazım.
pwm fonksiyonlarına baktığımda. şöyle değerler aldığını gördüm.
setup_power_pwm(modes, postscale, time_base, period, compare, compare_postscale, dead_time);
buradaki modları açıklaya bilirmisiniz?
mesela modes yerine ney postscale yerine ney vs vs.

modes değerleri şunlar fakat açıklamalarınıda bilmiyorum.

PWM_CLOCK_DIV_4, PWM_CLOCK_DIV_16,
PWM_CLOCK_DIV_64, PWM_CLOCK_DIV_128
PWM_OFF, PWM_FREE_RUN, PWM_SINGLE_SHOT,
PWM_UP_DOWN, PWM_UP_DOWN_INT
PWM_OVERRIDE_SYNC
PWM_UP_TRIGGER,
PWM_DOWN_TRIGGER
PWM_UPDATE_DISABLE, PWM_UPDATE_ENABLE
PWM_DEAD_CLOCK_DIV_2,
PWM_DEAD_CLOCK_DIV_4,
PWM_DEAD_CLOCK_DIV_8,
PWM_DEAD_CLOCK_DIV_16

skara1214

#1
Alıntı yapılan: iqsuz - 05 Aralık 2013, 10:05:18
öncelikle herkese kolay gelsin.
bir projemde 18f4431 kullanıcam ve 6 adet pwm lazım.
pwm fonksiyonlarına baktığımda. şöyle değerler aldığını gördüm.
setup_power_pwm(modes, postscale, time_base, period, compare, compare_postscale, dead_time);
buradaki modları açıklaya bilirmisiniz?
mesela modes yerine ney postscale yerine ney vs vs.

modes değerleri şunlar fakat açıklamalarınıda bilmiyorum.

PWM_CLOCK_DIV_4, PWM_CLOCK_DIV_16, //bunlar prescalar oluyor
PWM_CLOCK_DIV_64, PWM_CLOCK_DIV_128
PWM_OFF, PWM_FREE_RUN, PWM_SINGLE_SHOT, //bunLARDAN FREE_RUN 2 PWM DE AYNI FAZDA ÇALIŞIYOR    SİNGLE SHOT TETİKLEDİĞİNDE SADECE 1 PERİYOD O PWM Yİ ÜRETİYOR
PWM_UP_DOWN, PWM_UP_DOWN_INT / UP_DOWN          PWM REGİSTERİ HEM YUKARI HEM AŞAGIYA SAYARKEN PERİODU UPDATE EDEBİLİYOR,  UP_DOWN_İNT  YUKARIDA VE AŞAGIYA SAYARKEN İNTERRUPTA GIREBLIYOR
PWM_OVERRIDE_SYNC  //  ÇIKIŞI SENKRONİZE EDİYOR
PWM_UP_TRIGGER,  //HİÇ KULLANMADIM
PWM_DOWN_TRIGGER  //HİÇ KULLANMADIM
PWM_UPDATE_DISABLE, PWM_UPDATE_ENABLE //BURADA PWM SAYICI REGISTERİ GUNCELLEMEYI AC KAPA ISLEMI
PWM_DEAD_CLOCK_DIV_2,  //MOSFETLERI ACIP KAPARKEN DEAD TIME OLUSTURMAN GEREKLI BURADA OLUSTURDUGUN DEAD TIME IN SURESINI AYARLAYABILIYORSUN
PWM_DEAD_CLOCK_DIV_4,
PWM_DEAD_CLOCK_DIV_8,
PWM_DEAD_CLOCK_DIV_16
4431 de 4 adet hpwm 2 adet normal pwm uretebılırsın.hpwmde 4 çift pwm var 2 şer 2 şer duty cycleları  ayarlayabilirsin 8 pwm yi kafana göre ayarlayamassın...
Herkes ölür ama herkes gerçekten yaşamaz

iqsuz

hocam peki 6 tane farklı pwm alabileceğim bi entegre varmıdır.
sabit frekansta ama istediğim duty cycle'da

ayrıca hpwm ile normal pwm arasındaki fark nedir.
birde buradaki parametre açıklamaları nedir.

skara1214

#3
Alıntı yapılan: iqsuz - 05 Aralık 2013, 10:40:45
hocam peki 6 tane farklı pwm alabileceğim bi entegre varmıdır.
sabit frekansta ama istediğim duty cycle'da

ayrıca hpwm ile normal pwm arasındaki fark nedir.
birde buradaki parametre açıklamaları nedir.
parametre açıklamalarını zaten yaptım dikkat etmedin herhalde.hpwm ile normal pwm arasında resolution farkı var,bu piclede 6 tane elde edersin ama 4 ü hpwm 2 si normal pwm olur resolutionı çok istemezsen ve 10 khz 20 khz gibi bir sinyal kullanırsan güzel şekilde kullanırsın
Herkes ölür ama herkes gerçekten yaşamaz

iqsuz

Alıntı yapılan: skara1214 - 05 Aralık 2013, 12:46:08
parametre açıklamalarını zaten yaptım dikkat etmedin herhalde.hpwm ile normal pwm arasında resolution farkı var,bu piclede 6 tane elde edersin ama 4 ü hpwm 2 si normal pwm olur resolutionı çok istemezsen ve 10 khz 20 khz gibi bir sinyal kullanırsan güzel şekilde kullanırsın

alıntının içine hiç bakmamışım hocam kusura bakma.
çok teşekkürler değerli bilgilerin için.

aklıma gelmişken birde setup_power_pwm_pins(); fonksiyonun parametreleri ile ilgili bilgi verebilirmisiniz?

skara1214

//#define PWM_OFF         0    //
#define PWM_ODD_ON        1 //tek sayılı pwm pinleri aktif
#define PWM_BOTH_ON       2 // çift pwm açık
#define PWM_COMPLEMENTARY 3 //pwmler birbirlerinin tersi
Herkes ölür ama herkes gerçekten yaşamaz