pic16f628a pwm ve portb aynı anda kullanma

Başlatan cem86586, 19 Eylül 2015, 23:54:19

cem86586

merhaba forumda yeniyim ve hatta sırf bu soruyu sorabilmek için üye oldum denebilir(şimdilik).pic 16f628a için bir assembly programı yaptım amacım bir h köprüsünü pwm destekli olarak sürmek ancak pic'in donanımsal pwm özelliğini kullandığımda b portunun diğer pinlerini normal çıkış olarak kullanamıyorum ve onları kullanmam çok önemli çünkü ileri geri vs kontrolleri onlarla yapacağım.a pinini kullanabilirim ancak durup dururken zaten küçücük ve az bacaklı bu işlemcinin 7 portunu birden kaybetmek çok saçma bişey o yüzden ben mi yanlış bişi yapıyorum da böyle oluyor anlamak istiyorum bilenler lütfen yardım etsinler....bu arada pwm çalışmaya başlamadan önce portun bi bacağını aktive edersek yanılmıyorsam o bacak öyle kalabiliyor(on ya da off konumunda) ama pwm çalışırken bacağın durumunu değiştirmeye çalışırsak pwm de çok kötü bozuluyor şimdiden cevap verebilecek arkadaşlara teşekkür ederim...

ete

#1
Pic donanımsal pwm (HPWM) çıkışı yazdığımız programdan bağımsız olarak geri planda çalışır. Dolayısıyla programınıza bir etkisi olmayacağı gibi diğer pinlerede bir etkisi yoktur. Yoktur diyorum çünki benzer amaçla bu işlemciyi yüzlerce kez kullandım ve hiç bir zaman dediğiniz şey başıma gelmedi.

Ortada bir sorun olduğu belli ama muhtemelen yazdığınız program bu sorununyaratıyor.
Programı buraya koysaydınız sorun şurada diyebilirdik.

Ete

cem86586

hocam bu hpwm komutu nedir ben assembly kullanıyorum ve hiç böyle bi kodla ilgili bişey bulamadım assembly olarak, bu arada programımın basitleştirilmiş halini atacağım yakında karmaşa olmasın diye.

ete

HPWM Açılımı Hardware Puls Width Modulation ,16F628A ve bazı diğer piclerde bulunan donanımsal pwm çıkışıdır. Bu sistem için kullanıcıya düşen yalnızca sistemi aktif etmek ve duty değerini girmekten ibarettir. Aktive etme işlemine frekans seçimi ve çıkışın açılması dahildir.
Bunun dışında başka hiç bir şeyle uğraşmayacağın için sistem geri planda çalışıyor diyebiliriz. Dolayısıyla kendi yazdığın programa en ufak bir olumsuz etkisi olmayacağı gibi sinyal de son derece kararlı çalışır. Bu sitem Timer2 yi kullanır. T2CON registerinden frekansa uygun gelen bölme oranı ayarlanıp timer aktif edilir. PR2 registerine frekansa bağlı değer hesaplanıp verilir ve sonunda CCP1CON registerinden çıkış aktif edilir. Daha sonra duty değeri CCP1CON Registerinin 4-5 nolu bitlerine duty High byte değeri ve CCPR1L registerinede low değeri verilerek sistem çalıştırılır.

Hpwm bir basic komutudur yukarıda anlatılanları otomatik yapar. Sen ASM de yukarıda anlattoğım işlemleri yapman gerekiyor.

Ete

Powered by EzPortal