Haberler:

[move]Türkiye'nin Elektronik ve Metal Dedektörlerini Buluşturan İlk Sitesi Teknoloji Ekibi'ne Hoş Geldiniz.[/move]

Ana Menü

Yardımlarınızı bekliyorum arkadaşlar.

Başlatan Müslim yavuz, 08 Ekim 2007, 17:19:41

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Müslim yavuz

Hex yerine sayıyı binary ver diyon anladım... denedim olmuyor kardeş... artık bulcaz. aslında çok kolkay ufak detayları atlıyoruz. :(
Linkback: Ynt: Yardımlarınızı bekliyorum arkadaşlar.

Müslim yavuz

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


beyazkuvvet

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...

beyazkuvvet









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...

Müslim yavuz

16f628 seçili sağol karşılaştırıp hatyı bulup ezberlemeliyim çoksağol.

beyazkuvvet

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...

Müslim yavuz

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

Müslim yavuz

CMCON KOMUTUNDA BİR YANLIŞLIK VAR GALİBA TANIMIYOR DERLEYİCİ

beyazkuvvet

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....

Müslim yavuz


beyazkuvvet






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...

Müslim yavuz

Ç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

beyazkuvvet

estaffurullah abi kolay gelsin...takıldığın yerlerde burdan devam edelim...

senkron

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.

Müslim yavuz

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"

beyazkuvvet

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


Paylaş whatsappPaylaş facebookPaylaş linkedinPaylaş twitterPaylaş myspacePaylaş redditPaylaş diggPaylaş stumblePaylaş technoratiPaylaş delicious