Teknoloji Ekibi

Elektronik Dünyası => Mikrodenetleyici ve Mikroişlemciler => PIC => Konuyu başlatan: Müslim yavuz - 08 Ekim 2007, 17:19:41

Başlık: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 08 Ekim 2007, 17:19:41
TRISB=%00000001
SYMBOL TUS=PORTB.0
SYMBOL LED=PORTB.1
BASLA:
IF TUS=0 THEN
PAUSE 5000
IF LED=1 THEN
LOW LED
ELSE
HIGH LED
ENDIF
ENDIF
GOTO BASLA
END



Bana bu kodu içinde kullanılan komutlar ile beraber adım adım anlatabirmisiniz :(
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 08 Ekim 2007, 17:57:00
TRISB=%00000001 ========>   b portundaki bitlerin giriş veya çıkış olduğunu belirtir..

SYMBOL TUS=PORTB.0 =======>  portb.0 bitine tus adı verildi
SYMBOL LED=PORTB.1 =======> portb.1 bitine led adı verildi

BASLA:      =========> başla adında etiket oluşturulmuş
IF TUS=0 THEN  =====> tus "0" ise
PAUSE 5000      =====> 5sn bekle
IF LED=1 THEN  =====> led "1" ise
LOW LED    =======> led'i söndür
ELSE          ======> değilse
HIGH LED    ======> led'i yak
ENDIF       ====>ıf döngü sonu
ENDIF
GOTO BASLA  ====>başla adlı etikete git
END  =====> program sonu
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: elbombaci - 08 Ekim 2007, 18:00:28
Hayrola müslim kardeş assembly den vaz mı geçtin?
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 08 Ekim 2007, 18:29:32
ikisi birbirine tamamlayıcı olur diye düşünüyorum bombacı kardeşim. ilgin için sağol asm zor gelmeye başladı ama inan senin kadar bilmek için çok şey verirdim.

BEYAZKUVVET sanada ilgin için çok tşk ediyorum. Hanenede ekliyorum sağol.
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 08 Ekim 2007, 18:30:43
ikinci endif nedir peki beyaz kuvvet kardeşim neden arka arkaya iki endif komutu ?
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 08 Ekim 2007, 19:48:30

BASLA:


IF TUS=0 THEN 

PAUSE 5000
IF LED=1 THEN 
LOW LED
ELSE         
HIGH LED
ENDIF   
ENDIF   
GOTO BASLA
END

Hocam şimdi 2. ednıf koymamızın sebebi programda da göründüğü gibi 2 tane if'li şart oluşturmuşsunuz ,mesela atıyorum buton "1" ise led i söndür değilse(else)  ledi yak buradakı butun şartların sonlandığını belirtmek için sanırım aynı end gibi burada da endı if'li şartların sonu demek istiyor...yanı kısaca kaç tane ıflı şart oluşturursanız o kadar endıf eklersiniz..

Fakat basit bir örnek verim (burada durum farklı)

'program başlangıç

'not= her.gi bir kodun sonuna, ' işareti koyarak o kodun açıklamasını yapabilirisin ' işaretinden sonra yazılanlar komut olarak algılanmaz..

Örnek:

If buton1=1 then tel1    ' buton=1 ise tel1 adlı etikete git.
                                      ' eğer buton=0 ise bir alt satıra geçer :D burada else komutu kullanılmaz program bunu kendi algılar vb. anlar ve algılar...bu da bir endıf kullanılmayan ıflı şart komutuna örnektir hocam...


If buton2=1 then tel2
If buton3=1 then tel3
If buton4=1 then tel4

Goto örnek    ' son şarttan sonra bu komuta sıra gelir ve bu komuta programı etiketin başına yönlendirir...


Tel1:

Hıgh led1   ' buton1=1 olmuşsa program buraya gelir ve led1'i "1" yapar.

Goto tel1  'buton1 "1" yapıldıktan sonra led yanar ve program buraya gelir daha sonra yine başa gider ve ledi yakar ... bu böyle pic2in enerji kesilene kadar devam eder.....

,
,


Tel4:

Hıgh led2

Goto tel4


End   ' program sonu....



Kolay gelsin...
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 08 Ekim 2007, 22:19:44
sağol beyaz kuvvet güzel açıklama ama benim halen anlamadığım bişi var ?

BASLA:
IF TUS=0 THEN
IF LED=1 THEN
LOW LED
ELSE
HIGH LED
ENDIF
ENDIF
GOTO BASLA

Şimdi baştan okuyarak gelelim: tus 0 sa alt komutu çalıştırır 1 se bir alt komutu. 1 varsayalım tus 0 mı hayır 1 ledi söndür. işde kafam burada karışıyor Else komutu bu durumda dedi mi yakacak yoksa ednıf komutuna mı sıçrayacak.

Mesela asm dilinde BTFSS komutu ile IF aynı ama bu ıf de else var bu herdurumda yanı ıf her durumunda dallanma yapar mı yoksa komut sırasınca akar mı ? deli olacağım yaaa ne zor iş offf
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: elbombaci - 08 Ekim 2007, 22:49:53
BTFSS komutu ile IF-ELSE komutu farklı şeyler müslim, BTFSS de doğruysa bir altı değilse ikinci alttan devam eder. Fakat IF komutunda doğruysa ELSE ye kadar gider ELSE ile ENDIF arasını atlar. Yanlış ise sadece ELSE ile ENDIF arasındaki komutları çalıştırır.

(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fwww.cagataycebi.com%2Fprogramming%2Fc_programming%2Fc_operands%2Fif_else.png&hash=f596743d2505a47d6c58d32e7f5c6be1a330e750)

BTFSS ise böyledir.

(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fwww.edutecbauru.com.br%2Farquivospic%2Fimag%2Fcursopic451.png&hash=c408b52937a540ac3c9fa140ea2136b8c4d244fe)
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 08 Ekim 2007, 22:54:07
Çok sağol elbombacı valla çok sağol bu şema ve açıklaman beni aydınlattı çok sağol.
sizleri tanıdığıma inan çok memnunum kendimi şanslı hissediyorum;)
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 09 Ekim 2007, 00:12:23
Alıntı yapılan: Müslim yavuz - 08 Ekim 2007, 22:19:44
sağol beyaz kuvvet güzel açıklama ama benim halen anlamadığım bişi var ?

BASLA:
IF TUS=0 THEN
IF LED=1 THEN
LOW LED
ELSE
HIGH LED
ENDIF
ENDIF
GOTO BASLA

Şimdi baştan okuyarak gelelim: tus 0 sa alt komutu çalıştırır 1 se bir alt komutu. 1 varsayalım tus 0 mı hayır 1 ledi söndür. işde kafam burada karışıyor Else komutu bu durumda dedi mi yakacak yoksa ednıf komutuna mı sıçrayacak.

Mesela asm dilinde BTFSS komutu ile IF aynı ama bu ıf de else var bu herdurumda yanı ıf her durumunda dallanma yapar mı yoksa komut sırasınca akar mı ? deli olacağım yaaa ne zor iş offf


hocam şimdi verdiğiniz kod da sunu diyor...

eğer tuş "0" ise  ve  led"1" ise  ledi söndür,eğer tuş 1 ise ve led 1 değilse (else) (tus 0 değilse ve led 1 değilse) led yak...

bu arada devreyi oluşturuken uyuglayacağınız lojik değeride önemlidir..mesela sizin verdiğinz devreye göre devre 2 türlü çizilir.. 1.si pull up dirençleriyle 2. pull down dirençleriyle eğer1. gibi çizersenız picin buton bağlı pinine devamlı +5v gelir ve böylece sizin programa göre pic e bağlı olan led sönük durumdadır,siz ne zaman butona basarsanız devreye -5v yanı lojik 0 gelir ve led yanıp sönmeye başlar taki butondan elinizi çekene kadar...

2.sinde de pull down dirençleriyle çizdiğinizde picin buton bağlı pinine devamlı -5v yanı lojik 0 gelir ve led devamlı yanıp söner takii siz butona basıp +5v yanı lojik 1 verene kadar ve o anda led hangı konmda ise o konum led'e yansır..


devreyi kurdum ve denedim bu durum biraz farklı aslında anlatılmadan da anlanacak bişey bunun için ıf..then ile ilgili basit örnekler yapmalısınız bundan sonra değişik döngüler kurabilirsiniz benıde en çok zorlayan ıf..then olmuştu ama şimdi her programımım içinde var...hocam biraz örnek devre ve program yapıp isiste simule edersenız böylece daha iyi kavramış olurusunuz mantığı.....

micro code sutidio yuklu değilse en kısa zamnada yukleyip ete hocanın derslerden faydalanarak örnek uyuglamalar yapmaya başlayın...böylece işiniz kolaylaşır.....

eğer devre önemlı ise veya bir yerde kullancaksanız ne yapmak istediğinizi açıklayın yardımcı olım...kolay gelsin....
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 11:22:33
Beyazkuvvet sağol bir devbre yapmaya çalışlmıyorum sadece mantığı kavaramaya çalışıyorum. daha emeklemedim bile ne yürümesi... nerede bende şuan devre yapacak kapasite ...:)

Yardımlarınızdan dolayı tşk ederim ıf ile problemim kalmadı çözdüm sağolun
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 12:28:22
galiba çözememişim...

TRISA= $FF
TRISB= 0
PORTB= 0
SYMBOL TUS= PORTA.0
SYMBOL LED= PORTB.1
BASLA:
IF TUS = 1 THEN
HIGH LED
ELSE
LOW LED
ENDIF
GOTO BASLA
END

bu kod neden çalışmıyor ? bu kod şunu demiyormu ? = tuş bir ise else ile endif arasındaki low led komutunu çalıştır sonra başa dön.
tus 0 ise hıgh led komutunu çalıştır.else ile endifi arasını atla başa dön !  bu bu dedmek değilmi neden olmuyor anlamadım :(
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: elbombaci - 09 Ekim 2007, 12:32:31
ENDIF ELSE'nin mi yoksa IF' in mi? yoksa ortak mı kullanıyorlar :) ENDIF'ın altına bir ENDIF daha yaz  ;)
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 12:37:33
Bu dediğine derleyici izin vermiyor bombacı kardeş. iki kere ENDIF  yazdırmıyor. ???
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: elbombaci - 09 Ekim 2007, 12:41:59
ilk mesajında yazmışsın ama?
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 12:44:08
onda dikkad edersen iki IF komutu var bunda bir tane her halde ondan ?
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: elbombaci - 09 Ekim 2007, 12:46:30
pardon  :-[
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: elbombaci - 09 Ekim 2007, 13:05:52
müslim kardeş bir de trisa'ya TRISB=%00000001 formatında değer ata belki olur ben basic bilmiyorum seni yavaş yavaş takip ederim  ;)
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 13:21:46
Alıntı yapılan: elbombaci - 09 Ekim 2007, 13:05:52
müslim kardeş bir de trisa'ya TRISB=%00000001 formatında değer ata belki olur ben basic bilmiyorum seni yavaş yavaş takip ederim  ;)

Kardeş bu yazıda çelişki var sanki yada benimkafa durdu anlamıyorum.
"trisa'ya TRISB=%00000001 formatında değer ata belki olur "
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: elbombaci - 09 Ekim 2007, 13:34:49
kardeş trisb yazdığına bakma bu formatı kullan bir de dedim, yabi $ şeklinde değil de % şeklinde...  deneme yanılma yöntemleriyle bulacaksın hatanı ben de bilmiyorum
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 14:48:07
Hex yerine sayıyı binary ver diyon anladım... denedim olmuyor kardeş... artık bulcaz. aslında çok kolkay ufak detayları atlıyoruz. :(
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 17:37:55
BU DEVREDE ŞUNU YAPMAYA ÇALIŞTIM. TUS ADLI ETİKEN 1 OLUNCA BAŞLA ETİKETİNE DALLAN VE YÜRÜYEN IŞIKLARI ÇALIŞTIR.

aRKADAŞLAR ÇALIŞMAYAN KOD SADECE A:
IF TUS = 1 THEN BASLA
GOTO A
BASLA:
YANİ YÜRÜYEN IŞIK ÇALIŞIYOR AMA BUTONLA DALLANDIRAMIYORUM.:(



TRISB=0
TRISA=%11111111
PORTB=0
SYMBOL TUS = PORTA.0
A:
IF TUS = 1 THEN BASLA
GOTO A
BASLA:
HIGH    PORTB.0
PAUSE   50
LOW     PORTB.0
PAUSE   50
HIGH    PORTB.1
PAUSE   50
LOW     PORTB.1
PAUSE   50
HIGH    PORTB.2
PAUSE   50
LOW     PORTB.2
PAUSE   50
HIGH    PORTB.3
PAUSE   50
LOW     PORTB.3
PAUSE   50
HIGH    PORTB.4
PAUSE   50
LOW     PORTB.4
PAUSE   50
HIGH    PORTB.5
PAUSE   50
LOW     PORTB.5
PAUSE   50
HIGH    PORTB.6
PAUSE   50
LOW     PORTB.6
PAUSE   50
HIGH    PORTB.7
PAUSE   50
LOW     PORTB.7
PAUSE   50         'İLERİ SAYDI VE BİTTİ
HIGH    PORTB.7      'GERİ SAYMAYA BAŞLADI
PAUSE   50
LOW     PORTB.7
PAUSE   50
HIGH    PORTB.6
PAUSE   50
LOW     PORTB.6
PAUSE   50
HIGH    PORTB.5
PAUSE   50
LOW     POrTB.5
PAUSE   50
HIGH    PORTB.4
PAUSE   50
LOW     PORTB.4
PAUSE   50
HIGH    PORTB.3
PAUSE   50
LOW     PORTB.3
PAUSE   50
HIGH    PORTB.2
PAUSE   50
LOW     PORTB.2
PAUSE   50
HIGH    PORTB.1
PAUSE   50
LOW     PORTB.1
PAUSE   50
HIGH    PORTB.0
PAUSE   50
LOW     PORTB.0
PAUSE   50
GOTO    BASLA
END

Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 09 Ekim 2007, 17:46:12
Alıntı yapılan: Müslim yavuz - 09 Ekim 2007, 12:28:22
galiba çözememişim...

TRISA= $FF
TRISB= 0
PORTB= 0
SYMBOL TUS= PORTA.0
SYMBOL LED= PORTB.1
BASLA:
IF TUS = 1 THEN
HIGH LED
ELSE
LOW LED
ENDIF
GOTO BASLA
END

bu kod neden çalışmıyor ? bu kod şunu demiyormu ? = tuş bir ise else ile endif arasındaki low led komutunu çalıştır sonra başa dön.
tus 0 ise hıgh led komutunu çalıştır.else ile endifi arasını atla başa dön !  bu bu dedmek değilmi neden olmuyor anlamadım :(


hocam burda sunu dıyor eğer buton=1 ise then'den sonrakı komuta git yanı bir alt satıra git ve ledi yak eğer buton=0 ise elseden sonrakı komutu çalıştır yanı else ile endıf arasında kı komutları çalıştır....kolay gelsin...
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 09 Ekim 2007, 17:53:00








SYMBOL TUS = PORTA.0


A:
IF TUS = 1 THEN BASLA
GOTO A


BASLA:
HIGH    PORTB.0
PAUSE   50
LOW     PORTB.0
PAUSE   50
HIGH    PORTB.1
PAUSE   50
LOW     PORTB.1
PAUSE   50
HIGH    PORTB.2
PAUSE   50
LOW     PORTB.2
PAUSE   50
HIGH    PORTB.3
PAUSE   50
LOW     PORTB.3
PAUSE   50
HIGH    PORTB.4
PAUSE   50
LOW     PORTB.4
PAUSE   50
HIGH    PORTB.5
PAUSE   50
LOW     PORTB.5
PAUSE   50
HIGH    PORTB.6
PAUSE   50
LOW     PORTB.6
PAUSE   50
HIGH    PORTB.7
PAUSE   50
LOW     PORTB.7
PAUSE   50         'İLERİ SAYDI VE BİTTİ
HIGH    PORTB.7      'GERİ SAYMAYA BAŞLADI
PAUSE   50
LOW     PORTB.7
PAUSE   50
HIGH    PORTB.6
PAUSE   50
LOW     PORTB.6
PAUSE   50
HIGH    PORTB.5
PAUSE   50
LOW     POrTB.5
PAUSE   50
HIGH    PORTB.4
PAUSE   50
LOW     PORTB.4
PAUSE   50
HIGH    PORTB.3
PAUSE   50
LOW     PORTB.3
PAUSE   50
HIGH    PORTB.2
PAUSE   50
LOW     PORTB.2
PAUSE   50
HIGH    PORTB.1
PAUSE   50
LOW     PORTB.1
PAUSE   50
HIGH    PORTB.0
PAUSE   50
LOW     PORTB.0
PAUSE   50
GOTO    BASLA
END

düzenleme böyle olacak sizdeki kod ile karşılaştırın...

kodların başına trıs değerlerini yazmasanızda olur hocam...devre çalışmakta ...bir ayrıntı daha micro code studio'da hangi pic seçili.....kolay gelsin...
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 18:14:14
16f628 seçili sağol karşılaştırıp hatyı bulup ezberlemeliyim çoksağol.
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 09 Ekim 2007, 22:42:31
Alıntı yapılan: Müslim yavuz - 09 Ekim 2007, 18:14:14
16f628 seçili sağol karşılaştırıp hatyı bulup ezberlemeliyim çoksağol.

hocam programı hangi pic' e yazacaksan o kutucuktan o pic'i seçceksin bunu mutlaka biliyorsundur fakat eğer bu  ve bu tür basit uyuglamarda 16f628'in bir özelliği var hanı bu usart vb. seri haberleşme özellikleri varya onlar normalde pic tarafından kapalıdır fakat 1 özellik hariç oda coparatör pinleridir devrenın sağlıklı çalışması için programın en basına "CMCON=7" yazarsanız bu özellik kapanmış olur ve program istediğiniz şekilde çalışır....kolay gelsin...
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 22:46:31
hmm evet porta daki o. birti ve 4. bitini aktif etmek için. kullanılan cmcon komutu o yüzden çalışmıyormuş çünki porta nın o. biti cmcon komtuolmadığından giriş algılamadı...

Çok sağol beyaz kuvvet sağol sen mod olmalısın bence bir tşk daha ekliyorum kardeş. sağol
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 22:51:42
CMCON KOMUTUNDA BİR YANLIŞLIK VAR GALİBA TANIMIYOR DERLEYİCİ
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 09 Ekim 2007, 22:53:05
Alıntı yapılan: Müslim yavuz - 09 Ekim 2007, 22:51:42
CMCON KOMUTUNDA BİR YANLIŞLIK VAR GALİBA TANIMIYOR DERLEYİCİ

hocam bende çalışmakta nasıl bir hata veriyor... CMCON=7 mı yazdınız....
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 22:54:07
EVET
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 09 Ekim 2007, 22:58:42





CMCON=7


SYMBOL TUS = PORTA.0


A:
IF TUS = 1 THEN BASLA
GOTO A


BASLA:
HIGH    PORTB.0
PAUSE   50
LOW     PORTB.0
PAUSE   50
HIGH    PORTB.1
PAUSE   50
LOW     PORTB.1
PAUSE   50
HIGH    PORTB.2
PAUSE   50
LOW     PORTB.2
PAUSE   50
HIGH    PORTB.3
PAUSE   50
LOW     PORTB.3
PAUSE   50
HIGH    PORTB.4
PAUSE   50
LOW     PORTB.4
PAUSE   50
HIGH    PORTB.5
PAUSE   50
LOW     PORTB.5
PAUSE   50
HIGH    PORTB.6
PAUSE   50
LOW     PORTB.6
PAUSE   50
HIGH    PORTB.7
PAUSE   50
LOW     PORTB.7
PAUSE   50         'İLERİ SAYDI VE BİTTİ
HIGH    PORTB.7      'GERİ SAYMAYA BAŞLADI
PAUSE   50
LOW     PORTB.7
PAUSE   50
HIGH    PORTB.6
PAUSE   50
LOW     PORTB.6
PAUSE   50
HIGH    PORTB.5
PAUSE   50
LOW     POrTB.5
PAUSE   50
HIGH    PORTB.4
PAUSE   50
LOW     PORTB.4
PAUSE   50
HIGH    PORTB.3
PAUSE   50
LOW     PORTB.3
PAUSE   50
HIGH    PORTB.2
PAUSE   50
LOW     PORTB.2
PAUSE   50
HIGH    PORTB.1
PAUSE   50
LOW     PORTB.1
PAUSE   50
HIGH    PORTB.0
PAUSE   50
LOW     PORTB.0
PAUSE   50
GOTO    BASLA
END


böyle olduğunda sorun çıkmıyor hocam devreyi dnedim gayet iyi çalışmakta picin doğru seçildiğindne emin olun..ve kodu save as derken fazla uzun isim ile tanımlamayın..kolay gelsin...
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 09 Ekim 2007, 23:03:04
ÇOK ÖZÜR DİLERİM... :( pıc yanlış mış... evet bede kurdum ve çalışdı...
sağol evlat...

ama bana hocam deme hak ettiğim bir lakab değil saygın için sağol. senden büyük olduğum için abi yada kardeş kelimesi kullan ayrıca hoca olan sensin farkında isen ben seden öğreniyorum. :D
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 09 Ekim 2007, 23:43:00
estaffurullah abi kolay gelsin...takıldığın yerlerde burdan devam edelim...
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: senkron - 01 Kasım 2007, 01:32:21
Alıntı yapılan: Müslim yavuz - 09 Ekim 2007, 12:28:22
galiba çözememişim...

TRISA= $FF
TRISB= 0
PORTB= 0
SYMBOL TUS= PORTA.0
SYMBOL LED= PORTB.1
BASLA:
IF TUS = 1 THEN
HIGH LED
ELSE
LOW LED
ENDIF
GOTO BASLA
END

bu kod neden çalışmıyor ? bu kod şunu demiyormu ? = tuş bir ise else ile endif arasındaki low led komutunu çalıştır sonra başa dön.
tus 0 ise hıgh led komutunu çalıştır.else ile endifi arasını atla başa dön !  bu bu dedmek değilmi neden olmuyor anlamadım :(

selam kardeş.Kullandıgın pıc in datasheetine bak belki A portu ilk etapta giriş çıkış için değilde başka bi amaç için ayarlanmış olabilir.Basic bilmiyorum ama assemly de (pıc16f628,16f84) de A portunu kullanmak için programın başına

movlw d'7'
movwf Cmcon
bu komutları ekleyip daha sonra portun giriş çıkış durumu ayarlıyoduk.Örneğin
MOVLW  B'00011001'
MOVWF TRISA

belki c ve basic gibi üst düzey dillerde bu ayarlamaya gerek kalmıyodur tam olarak bilemiyorum.
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: Müslim yavuz - 01 Kasım 2007, 11:37:29
Sağolasın kardeş ama deneyerek buldum tabi forumda ki arkadaşların faydası ile... 16f628 kullanıyordum onun da a portunda bazı ayaklar dijitaal giriş çıkış değil aksi kod yazılmadığı süree. o kodu yazınca düzeldi.
o kodda "cmcon7"
Başlık: Ynt: Yardımlarınızı bekliyorum arkadaşlar.
Gönderen: beyazkuvvet - 03 Kasım 2007, 16:44:39
normalde tüm pinler  default olarak dijital i/o dur.Sadace adc ve comparator lerin olduğu pinler başlangıçta farklıdırlar.Bu pinlerde, 16f62x ler için cmcon registerine 7 yükleyerek.16f87x ler için adcon1 registerine 7 yükleyerek dijital i/o moduna geçilir.
 
kolay gelsin..banada og hocam öğretmişti :D