Pic Yükselen kenar

MoSTaR

Üye
Katılım
17 Ara 2007
Mesajlar
82
Puanları
1
Merhaba arkadaşlar. pic16f84 de yazılım ile yapılmış bir pwm uygulaması yapıyorum. butona basıldığı andan itibaren pic'in çıkış ucu 3sn boyunca pwm puls'ları üretecek ve 3sn nin sonunda puls'lar son bulacak. Burada benim sorunum butona bastığımda butondan elimi çekene kadar puls 1 konumunda kalıyor, elimi çektiğimde pwm başlıyor. Benim istediğim ise butona bastığım andan itibaren pwm direk başlasın. Butonun kontrolü için

BTFSC PORTA,1 komutunu kullanıyorum

Bu sorunu çözmek için butona bastığımda puls'in yükselen kenarı ile pwm'i başlatmak istiyorum. 16f84'te bu mümkünmüdür acaba? yada nasıl yapabileceğime dair bir önerisi olan varmı? (butona bastığımda bekletme yaparak çözüyorum aslında ama bu istediğim bir çözüm değil)
 
asm'fazla bilmem ama komutu bu sekılde yapmalısınız diye dusunuyorum.BTFSS PORTA,1
 
Pardon ben onu yukarı yazarken yanlıs yazmısım kod sizin dediğiniz gibi zaten. siz soyleyince farkettim
 
Arkadaşlar yükselen kenar tetiklemeyi pic'in girişlerinde nasıl kullanacagıma dair bir bilgisi olan yok mu? 16f84a olması şart değil baska bir modelde olabilir.
 
yapmışsınız işte.
giriş pini 1 olunca(yani butona basıp pin pozitife bağlanınca
pwm çalışıyor.
ne sorduğunuzu anlamadım.
 
program döngüsünde sürekli butona basılımı değil mi diye kontrol ediliyor. eğer butona basıldı ise pwm hemen baslayacak. ama sekilde gördüğünüz gibi pwm sinyali butondan elimi cektiğimde baslıyor.
Bu şu demek; pwm ile bir ledin parlaklığını kontrol ediyorum. pwm sinyali ile pic'in cıkısındaki 1 degerlerini darbeli olarak gönderiyorum bu sayede cıkıstan sabit 5V yerine 2,5V, 3V gibi gerilim seviyeleri alabiliyorum. Ama butondan elimi çektiğimde bu meydana geliyor. Butona bastığım anda önce kısa bir süre 5v geliyor, sonrasında gerilimi düşürebiliyorum. ben hemen baslasın istiyorum.
 
aslında program satırını tam koysan iyi olurdu ama sanırım senin kodlarda problem var aşagıdaki gibi bir dene istersen olmazsa kodlarını ekle bir bakayım

basla:
BTFSS PORTA,1
goto basla
goto PWM

PWM:
call GECIKME
call (pwm rutini)
 
buton kontrolunda gecikme yapılması gerekir, oluşacak arkları ve yanılmaları
önlemek için.
erdi001 arkadaş örnek kodu vermiş.
buton pini ve pwm çıkış pini ayrı değil mi?değilse ayrı olması gerekir...
butona basılınca pwm çevrimine gidilecek ve 3 saniye sonra kontrol çevrimine geri dönülecek.
ayrı pwm modülü olmayan piclerde pwm üretirken aynı zamanda
başka işlere bakması problem yaratıyor..
ama dim etmede sorun olmaz , programı ona göre yazmak lazım.
 
Burada şöyle bir sıkıntı var izah edeyim. benim kurdugum pwm'de arkadasımın verdigi örnekteki gibi. farklı gerilim seviyeleri alabilmek için biraz farklılık var;

PWM1:
call GECIKME1
call (pwm rutini)

PWM2:
call GECIKME2
call (pwm rutini)
.
.
diye devam ediyor. farklı gerilim seviyeleri ilede pic'in cıkısındaki ledin parlaklıgını ayarlıyorum. program bu haliyle sorunsuz calısıyor fakat butona birkez daha basıldıgında işlemi yarıda kesip tekrar bastan baslamasını istiyorum. bu yuzden her pwm yazılımının içinde butona basılımı degil mi diye kontrol ediyorum;

PWM1:
call GECIKME1
call (pwm rutini)
BTFSS PORTA,1
goto pwm2
goto basla

PWM2:
call GECIKME2
call (pwm rutini)
BTFSS PORTA,1
goto pwm3
goto basla
.
.
bu şekilde. Aslında program boyle de calısıyor ama butondan elimi cekene kadar haliyle dongu sadece pwm1 de oluyor. Bunu cozmek içinde extra bir degişken kullanıp çözmeye calısacagım. olursa buraya yazarım tekrar. Teşekkür ederim hepinize ilgilendiğiniz için.
 
PWM nin içine buton kontrolu koymak işi bozar.
PWM zaten 3 sn sürüyor.buton kontroluna ne gerek var?
PWM nin periyodu ve GECIKME1 in süresi ne kadar?
 

Forum istatistikleri

Konular
128,126
Mesajlar
915,254
Kullanıcılar
449,841
Son üye
nazoyata

Yeni konular

Geri
Üst