pic 16f84a hakkında soru

dpu_force

Üye
Katılım
26 May 2007
Mesajlar
70
Puanları
1
Yaş
39
Merama kontrol kalemi üyeleri öncelikle iste çok harika elektronikle ilgili istediğim bilgileri kolaylıkla buluyorum.

soruma gelince 16f84a kullanarak kolay bi deney yapim dedim ama olmadı hatanın nerde olduğuna ilişkin kullandığım kristalde ve mecimek kondansatörlerdemi sorun olabilir diye düşündüm yenileriyle denedim yine olmadı. picin bacaklarından çıkış alamıyorummmm
konuyla ilgili yardımcı olurmusun
şimdiden çok tşkler





_________________________________________________

Konu başlığı konunun özeti olmak zorundadır çok acli bakmayan kalmasın vb şeyler kullanmak yasaktır.

Bu mesaj en son " 3 haziran 2008 " tarihinde, saat " 20:43 " itibariyle görkem tarafından düzenlenmiştir.
 
Moderatör tarafında düzenlendi:
sn.dpu_force
devre ne devresi ve şema,kod ve hex varmı
 
kardeş şimdi sana pic ten çıkış alamama sebeplerini saymaya başlarsak işimiz uzun sürer
biraz detay ver de yardımcı olmaya çalışalım
ne yapmaya çalıştın program kodları varsa ekle nasıl programı pic e yazdın (konfigürasyon hatası da olabilir) biraz açıkla
 
#include<pic.h>
#include<delay.c>

main(void)
{
unsigned char i=1;
TRISB=0;
for(;; )
{
PORTB=i;
DelayMs(250);
if(i==128)
i=1;
else
i=i<<1;
}
}



-------------------------------------------------------------------------------

:0c000000830100308a0004288301ce2b0d
:10079c008c018c0a8316860183120c088600fa30b1
:1007ac008312e6230c08803a031ddd2bde2be12b94
:1007bc008c018c0ae42b031083128c0dd22b042891
:1007cc008e00043083128d00533083128f00ef2b78
:1007dc00ef2b83128f0bf32bf42bee2b83128d0b41
:1007ec00f82bf92bea2b83128e0bfd2bfe2be72b10
:0407fc00831208005c
:00000001ff

hex dosyasıda bu

Arka arkaya mesaj yazmak yasaktır lütfen üstdeki Değiştir butonunu kullanınız

Düzenleme: korkmaz_design 03.06.2008 21:42
 
devre neyle ilgiliydi yani ne yapması gerekiyo picin
istersen devrenin çalışmasını tüm detaylarıyla yaz biz de bi program yapalım
(ben pic c bilmiyorum kusura bakma asm ile yazıyorum)
 
Senin yaptığın konfigürasyon hatalı

Osc yi RC yapmışsın seçtiğin kristal türüne göre (Belirtmemişsin) HS den başlayıp diğerlerini dene RC hariç

WDT kutucuğunu işaretlemiş ve etkin yapmışsın bunu devre dışı bırak,

pic C bilmediğim için nasıl bir program yapmaya çalıştığını yorumlayamıyorum.

ama asm koduna bakılınca PORTB nin 0 nolu pininden 7 nolu pinide doğru sürekli kayan bir nokta oluşur.
eğer yapmaya çalıştığın buysa hatan kod ta değil sadece konfigürasyonda.
 
portB nin 0 nolu pininden 7 nolu pinine kadar her bir pin belli bir süre çıkış vermesini istiyorum yani sırayla. wdt kutucuğunu disable yaptım. sadece xt kutucuğunu aktif yapıp denedim ama yine olmadı.konfigürasyonda hata var derken, devrenin kuruluşunda mı hata var diyosunuz

osc yi de xt yapıyorum hex dosyasını programcıya gönderirriken
 
osc yi de xt yapıyorum
HS yaparak denedin mi? Burda gecikme zamanını çok kısa seçtiğin için bütün çıkışlar (Döngü hızlı gerçekleştiği için) yanık ya da sönük görünebilir. Kristal hızın yüksekse bu durum seni yanıltır döngü içinde gacikme zamanını uzat

değerini artırman gerek ya da verebiliyorsan bu değeri saniye cinsinden ver.
böyle bir parametre yoksa da alt alta 2,3 ilave yap.

üst düzey dillerde kristal hızınıda parametre olarak vermen gerekir diye düşünüyorum. zira zaman döngüsü buna göre kendisini yapılandırıyor.

zira Asm kodunda hiç gecikme görünmüyor. işlem çok hızlı gerçekleşiyor.
 
gecikmeyi verdim
DElay(250);

komutu b portu bacaklarındaki gerilim hep sıfır gzukuyo bitek 13 bacakta2,61 volt gzukuyo okadar
 
gecikme yokken; kristal hızın 10mhz ise bu 1sn de 10000/4=2500 işlem demektir. çıkış aktif kalma süreside bu durumda 2500/1 demektir. bunu osilaskop ile görmen bile zor olabilir.(genel anlamda)

burdan hareketle osc hızınızı programda belirtmeniz gerekir diye düşünüyorum (C bilmiyorum ama pic basik te bunun yapıldığını hatırlıyorum)

baktığım kadarıyla (Diasm de) algoritmada hata yok

en kısa yoldan; bunu yaparak süreyi uzat

DelayMs(250);
DelayMs(250);
DelayMs(250);
DelayMs(250);

olmuyorsa bu sefer süreyi kısaltarak dene
DelayMs(20);
gibi


kristal hızınız düşükte olabilir bu nedenle işlem çok büyük bir gecikme ilede ilerliyor olabilir.

donanımda MCLR ucunu +5v a 4,7k gibi bir dirençle bağlantı kurdunuzmu?

kullandığınız kristal hızı nedir? (Mhz olarak)
 

Forum istatistikleri

Konular
128,325
Mesajlar
916,723
Kullanıcılar
450,167
Son üye
oygg

Yeni konular

Geri
Üst