16f877a da çalışan PWM kodunu (PBP) 16F628a da çalıştıramadım... Yardım

Başlatan elektroacemi, 12 Mart 2012, 23:13:51

elektroacemi

Arkadaşlar 16f877a da şu kod ile pwm ayarı yapıyordum

HPWM 2,100,1000               

şimdi 16f628a da pwm kullanmak istiyorum ama bu satırda hata veriyor ,
her pic'e göre PBP kodlarını nereden bulabilirim?

Mucit23

16F877 de iki adet CCP modülü bulunur. Dolayısıyla iki adet ayrı pwm çıkışın olabilir. 16F628 de ise bunlardan 1 adet vardır.
Sen hem pic16F628 i seçip hemde HPWM 2,100,1000  komutuyla 2. PWM kanalını ayarlamaya kalkarsan derleyici 16F628 de sadece 1 tane hPWM var diye hata verecektir sana. Komutta koyu renkle yazdığım 2 değeri pwm kanalını temsil eder. Oradaki değeri 1 olarak değiştirsen sorun muhtemel olarak düzelecektir.

elektroacemi

Teşekkürler şimdi deneyeceğim

Birde şu var, proton derleyicisi kullanıyorum, bu derleyici yukardaki gibi bazı hatalarda derlerken donuyor (yanıt vermiyor) ve zorla kapatıp tekrar açtığımda HEX dosyası üretmiyor...
silip tekrar yüklüyorum düzeliyor....
Neden olabilir

Mucit23

Pek bi fikrim yok ama Protonun sistem dosyaları eksik olabilir. Belkide Eski versiyon kaynaklı bir arızadır. Son versiyonları kullanmaya çalışın

elektroacemi

Aslında PBP nun kendi programını kullanmak istiyorum ama bulamadım :(

Bu arada 2 leri 1 yaptım gene hata verdi :(

muhittin_kaplan


elektroacemi

Sorun alakasız bir yerdeymiş, ama derleyici o satırda hata vermiş, (en baştaki sigortaklarda )
Teşekkür ederim

serhat1990

arkadasın dediği dogru . hpwm 0 ile baslayacak komutun ... derleyici hata vermez fakat pwm üretme konusunda sıkıntı oluyor . 2 sene önce böyleydi :)

Mucit23

Mpasm ile Derliyorum. Kanalı hem 0 hemde 1 olarak yazdığımda derlemede bir problem çıkarmıyor fakat 0 olarak yazıldığında HPWM çalışmıyor. Zaten PBP nin Help dosyasını incelerseniz kanalın sadece 1,2 ve 3 olarak yazılabildiğini görürsünüz. 16F628 de 1 Tane HPWM olduğu için Kanal olarak 1 yazılması gerekir. 0 Yazarsanız derleyici hata vermez fakat PWM de çalışmaz.
Bu kod ile deneyebilirsiniz.
Alıntı YapDEFINE OSC 4

@ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_off & _LVP_OFF & _CP_OFF

TRISA=%00000000
TRISB=%00000000
PORTA=0:PORTB=0

CMCON=7

DEFINE CCP1_REG PORTB 'Hpwm 1 pin port
DEFINE CCP1_BIT 3 'Hpwm 1 pin bit
HPWM 1,127,1000
BASLA:
PAUSE 1
GOTO BASLA
END

serhat1990

hpwm ile pwm çalışmıyor diyorsanız fakat ben çalıştığından gayet eminim başıma geldi . 2 sene önce micro code studio 3.0.0.0 derleyici ismide verebilirim.

Mucit23

Emin olmak için yazılımı gerçektede denedim. Sonuç dediğim gibi. Eğer sizdeki Derleyici buna izin veriyorsa ortada bir Problem var demektir. İnterneti araştırdım Bazı yerlerde dediğiniz gibi 16F628 ile HPWM kulanılırken HPWM komutunda kanal olarak 0 seçilmesi gerekiğinden bahsedilmiş. Ben böyle yaptığımda HPWM sinyali duruyor. 1 olarak ayarladığımda HPWM sorunsuz bir şekilde çıkıyor.

PBP nin manualini inceleyin. İşlemci ayrımı yapılmaksızın HPWM kanallarının 1,2 veya 3 olacağı söylenmiş.

Eğer siz hala çalıştığını idda ediyorsanız gerçekte deneyip sonucu bildirin.

(Bu arada Bende MCS  olarak 3.0.0.5 versiyonu, PBP olarakda 2.60A versiyonunu kullanıyorum. Belkide bendeki sürümde bu sorunu düzeltmişlerdir.)

ferit06

HPWM için;

http://www.micro-examples.com/public/microex-navig/doc/097-pwm-calculator.html   hesaplamasını yapın

kullanacağınız noktada;

PR2=%00011000
T2CON=%00000100
CCPR1L=%00001100
CCP1CON=%00011100

gibi  yazın.

CCP1CON = %00000000 ile de durdurun....

serhat1990

O derleyicide öyleydi sanırım artık deneme imkanım yok c de daha rahat oluyomus bu işler onu öğrendik :) :)

muhittin_kaplan