R

İLK PROJEM

Başlatan Reytabu, 28 Haziran 2012, 23:14:07

Reytabu

Ete hocam

Sayenizde ilk minik bir projeme başladım.
program şöyle: 5 er gruplu 25 adet yanar durumdaki  led
teker teker söndürülecek. 1 grup denememde program çalışıyor.
5 gruba uyarladığım zaman hem ledler sürekli yanıp sönüyor.
Hem de söndürmeler sıra takip etmiyor.
Bir göz atabilirmisiniz

ete

#1
Projenin amacını pek anlamasamda hatalarını görebiliyorum. Sırası ile veriyorum.
1. Programın başına sigorta ayarlarını koymayı ihmal etme.

@ DEVICE pic16F876A                           'işlemci 16F628
@ DEVICE pic16F876A, WDT_Off            'Watch Dog timer kapalı
@ DEVICE pic16F876A, PWRT_OFF         'Power on timer kapalı'
@ DEVICE pic16F876A, PROTECT_OFF    'Kod koruma kapalı'
@ DEVICE pic16F876A, XT_OSC              'XT osc


2. İşlmecinin çalışma frekansını tanımla,
Define OSC 4 


3. Kullandığın işlemcide (yalnızca A serisinde) Komparatör vardır. A portu komparatör olarak açılır. İptali için
CMCON=7

komutunu kullanman gerekiyor.

4. Her programda ilk açılışta mutlaka 250-500 ms arasında bir açılış gecikmesi yaratın. Bu gecikmeyi değişken tanımlamadan hemen sonra koyun. Bu gecikme registerlerin yerlerine yerleştirilmesi varsa LCD nin açılması için mutlaka gereklidir.
Pause 250 şeklinde kullanabilirsiniz.

5. Basic matematiğinde sıfırdan küçük sayı yoktur. En küçük sayı sıfırdır. O halde IF SOL1<0 THEN SOL1=0   şeklinde bir ifade yanlış olmaktadır. Yada basiz açısından anlamsız olmaktadır. Byte cinsinden sayıları sürekli küçültürseniz önce sıfıra ve sıfırdan sonra ise -1 değil 255 değerine ulaşırsınız. Yani en büyük değere. Bu nedenle bahsi geçen ifade şöyle yazılmalıdır;
IF SOL1=255 THEN SOL1=0 
Bunun anlamı SOL1 küçüle küçüle sıfırdan sonra 255 değerine ulaşmış ise değerini yeniden sıfır yap şeklindedir.

6. Gördüğüm kadarı ile program YOL1 veya YOL2.... YOL5 gibi satırlara bir kere geldimi orada kalmaktadır. Bir yerde programı o satırlara hapsediyorsun. Halbuki bir şekilde çıkıp yeniden başa dönmesi gerekmezmi ? İşin bu kısmında bir mantık hatası yaptığını düşünüyorum. Yeniden incele istersen.

Bu yazdıklarımı yeniden düzenle ve programlarını çalıştır bakalım. Şayet yine hatalı çalışıyor ise bana adım adım ne yapmak istediğini anlatman lazım ki anlayıp hatalarını görebileyim.Yoksa bu şekilde bir şey anlamıyorum maalesef.

Ete


Reytabu

Hocam teşekkür ederim.
Bahsettiğiniz gibi program Yol1, Yol2 .. Yol5  satırlarında kalıyormuş. Satır sonlarından
yönlendirince program çalıştı. Derslerinizde ve forum açıklamalarınızda ISIS in sigorta ayarlarını
varsayılan olarak atadığını belirtmiştiniz. Gerçek devreyi yapınca sigorta ayarlarını dediğiniz gibi yapacağım.
Diğer açıklamalarınız için de tekrar teşekkürler.






Reytabu

Hocam

İlk projem anahatlarıyla ve program olarak hazır.
Şimdi kafama takılan konu şu: İsisten baskı devresi çizimi için  ares'e
aktarınca pic besleme yollarını nasıl çizerim. İsiste böyle bir bağlantı yapmayınca
haliyle arese bunu aktarmıyor.
Hiç baskı devre çizimi tecrübem olmadığında yardımınızı rica edeceğim.

F®T

#4
     Pic besleme yolları şematikte görünmesede  areste  otomatik çizer.pic in artısını 5 volta eksisini  şaseye baglar.ayrıca çiziminde led lerin pcb ayaklarını otomatik  göremiyor.ares e aktarma yaparken  ledlerin ayaklarına LED olarak  paket ataması yaparsın. buton  içinde   SW-PUSH1 olarak paket ataması yaparsın.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

Pcb cizim Programı olarak Ares kullanmıyorum. Bana kullanımı kolay ve rahat gelmiyor
Bu nedenle tecrübeli değilim. Ancak şunu biliyorum. Devrene besleme devresi mesela bir 7805 devresi çizersen ares bağlantıları yapar.
Ete

Reytabu

Arkadaşlar

projemde baskı devresi için bazı pinlerin yerini değiştirdim.
Şimdi  Rc7 pini low olunca RA4/t0cki/c1 out pini ledi yakması gerekiyor fakat led yanmıyor. Sanırım bu pinin çıkış olarak kullanılması için
bir ayar gerekiyor. Yardım lütfen

greatgonzo

TRISA=0 yerine TRISA=%00000000 şeklinde kullan sağdan sola doğru pınler 0 dan 7 ye doğru sayılır. Bu durumda PORTA.4 çıkış olması için TRISA=%00010000 şeklinde ifade etmelisin. Ayrıca programını basic ile derleyebildin mi merak ediyorum. Pekçok if döngüsü gördüm fakat hiçbiri endif ile bitmiyor. Normal de pek çok hata vermesi lazım...

İyi çalışmalar.

ete

Buyukgonzo,
Emin olmadan vede dusunmeden sorulara cevap verme istersen. Verdigin tarif ilgili pini cıkış degil giris yapmak icindir.

Sorunun dogru yanıtı ise yüzlerce defa açıklandığı üzere PortA.4 pini open collectordur. Kendi basina high cıkartamaz. Bu nedenle high verebilmesini saglayacak bir pullup direnci baglamak gerekir.
Bu pin ile led yakacaksanız led i direk pine baglayın ve pine ayrica 330 ohm veya 220 ohm direnc baglayın . Direncin diger ucu +5v da olmalıdır.

Reytabu

ETE hocam teşekkür ederim.

Pullup yapınca led yandı.
Pratik yapmayınca sadece okuyarak akılda kalmıyor.
Artık porta.4 ü hayat boyu unutmam.

Reytabu

ETE Hocam

Projemde bazı değişiklikler yaptım ve PİC i değiştirdim.
program çALIŞINCA PORTA ya bağlı led lerin sabit  yanması lazım. Fakat hepsi de yanıp  sönüyor.
Yardım lütfen

ete

Programında yer alan;
ADCON1=7
CMCON=7  satırlarını sil sonra aşağıdaki satırların tamamını programa ilave et.
Bu arada İsis devresinde işlemci hızı 1 Mhz de kalmış onuda 4 Mhz yapıver.
@ DEVICE pic16F88             'işlemci 16F88 
@ DEVICE pic16f88, INTRC_OSC_NOCLKOUT
@ DEVICE pic16f88, WDT_ON     'Watch Dog timer
@ DEVICE pic16f88, PWRT_ON    'Power on timer açık
@ DEVICE pic16f88, MCLR_OFF   'mclr off
@ DEVICE pic16f88, BOD_OFF
@ DEVICE pic16f88, LVP_OFF
@ DEVICE pic16f88, CPD_OFF
@ DEVICE pic16f88, WRT_OFF
@ DEVICE pic16f88, DEBUG_OFF
@ DEVICE pic16f88, CCPMX_ON  ;'........CCPMX_OFF = RB0, and CCPMX_ON = RB3.
@ DEVICE pic16f88, PROTECT_ON
define OSC 4
OSCCON=%01101100
ADCON1 = %10000000  ' PORTA.0,1,2,5 = A/D, PortA.3 = +Vref
ANSEL=%00000000
CMCON=7

Ete

Reytabu

Hocam hızlı yanıtınız için teşekkür ederim.
Benim 64 bit makina device tanımlamalarında yine hata veriyor.
"Basic'e nasıl başlanır, Gerekli programlar ve kurulumlar" konusunda
açıkladığınız gibi pbb klasöründeki deki 16f88.ınc dosyasındaki config satırını kapatmama rağmen derleme
yaptıramadım. @ device.. ayarlarını satırlarını silince derleme yaptı ve programım çalıştı.
Son çare 32 bit bir PC de derleme yapıp Pic'e yükleyeceğim.
Hiç elektrik ve elektronik bilgim olmadan (mesleğim bankacı) 3-4 ay önce başladığım elektronik ve pic konusunda
dersleriniz ve kişisel yardımlarınız sayenizde epey aşama kaydettim. Bazen sizce basit ve mantıksız gelecek sorularım oluyor
artık hoşgörün. İlk projemin bitimini müteakip ilk işim pic datasheet okuma işine öğrenmeye başlayacağım. (CMcon, adcon, osscon, ansel ayarları).

Saygılarımla

ete

Verdiğin bilgiye bakarsan sanki makinanda birden fazla PBP kurulu ve sen yanlış yerdeki INC dosyasını değiştiriyorsun.

MCS içinde View menüsünde Compiler & Program options seçeneğine bakarak PBP hangi adreste gözüküyor ise orada değişiklik yapman gerekiyor.

Bu dediklerimi zaten yapmış ise zaten başkaca yapacak bir şey yok demektir. Makinanda muhtemelen bir sorun olsa gerek.

Ete

Reytabu

Sonunda ilk projemi bana göre çok  başarılı bir şekilde tamamladım
Tabiiki sitenin bilgileri ve ETE hocanın  yardımlarıyla.
Devre özel bir sayıcı.  Atış poligonunda 5 istasyonda çıkan 5 er hedefi
(toplam 25 hedef) takip ediyor.Kalan hedeflerin yerini ledler yardımıyla gösteriyor.
Böyle bir site kurup  hiç sıkılmadan tüm sorulara ayrınrılı şekilde yanıtlayan ETE hocaya çok teşekkürler.

Powered by EzPortal