PWM ile parlaklık kontolü fakat ASM'de

Başlatan KralMurat, 24 Mayıs 2011, 11:12:20

KralMurat

Arkadaşlar merhaba. Projemin konusu Timer Interrupt ile parlaklık kontrolü. PIC'den ileri düzey anlamıyorum, mesela timer interrupt hiç kullanmadım. Ayn şekilde PWM'de kullanmadım herhangi bir çıkışta. C dilinde yerli yabancı birçok kaynak buldum PWM ile parlaklık kontrolü üzerine, fakat ASM'de bulamadım. Bende C bilmiyorum ASM biliyorum. En azından ASM kodu olursa üzerine birkaç değişiklik yapmam gerekiyor.

Devrede 2 buton 1 led olacak. Led'in parlaklığını bir buton arttıracak bir buton azaltacak. Projem bu. Basit gibi de görünüyor. Acaba ASM'de PWM ile parlaklık kontrolü ile ilgili bir kod paylaşabilecek arkadaş varmı? Tüm devrenin kodunu yazmanızı beklemiyorum tabii ki, sadece PWM kısmını yazsanız, hangi değişkeni arttırdıkca kare dalganın uzadığını söyleseniz ben buton ekleme ve arttırma azalartma kısımarını modifiye edebilirim sanırım.

Şimdiden teşekkürler.

KralMurat

Bu arada söylemeyi unuttum devreyi 16f876 ile yapmam gerekiyor.

KralMurat

Arkadaşlar konunun mantığını anlayayımda kendim yapayım diye ASM'de PWM araştırıyorum ama neredeyse hiçbirşey yok. Yardımcı olacak kimse yokmu?

fahri-

PWM den önce timer interrupt araştır. Timer interruptı çözdüğünde PWM i çözmüş olacaksın. mesela timer interruplı 1 sn de yanıp sönen basit led programı ile başla.

Erhan YILMAZ


https://320volt.com/attiny2313-pic16f88-usb-uart-donusturucu-devresi/ Adresindeki usb uart çevirici için örnek kod yazmıştım işine yarar. Program seri porttan aldığı bir byte veriye göre ledin parlaklığını ayarlıyor ayrıca adcden okuduğu değeri de seri porttan gönderiyor.Pwm ayarlama kısmını kesmede hallediyor. Seriporttan veri alımı olduğunda kesme oluşuyor sonrasında gelen veriyi ccp1 modülüne uyguluyor pwm işaretini oluşturmak için.Kodu incele anlarsın.