PIC BASIC PRO'DA ASM

Başlatan HEXF2, 13 Nisan 2005, 08:58:30

HEXF2

beyler ben PIC BASIC PRO ile ASM yi karışık kullanıyorum ASM çok iyi zaten program kodlarının çoğunu asm ile yazıyorum sadece LCD ye yazı yazacağım zaman yada I2C olaylarında PBP kullanıyorum daha PBP de çok yeniyim sormak istediğim şu şimdi kodları asm ile yazarken aniden LCD ye mesaj göndermem gerekti "ASM içerisinden PPB etiketine nasıl dallanma yaparım yani misal asm ile kod devam ediyo LCD ye msj yazmam gerekti asmden hemen PBP alt programına gidicem mesajı yazıp asmde kaldığım yere geri dönücem bir diğer sorumda asm kodları içerisinde etiket nasıl koyuyoruz çünkü asm kodları içerisinde ne yazarsam yazayıp kod olarak anlıyo ben asm içerisinde nasıl etiket koyup dallanmalar yapabilirim sorunum ikitane yani biri asm kodları içerisinde nasıl PBP alt programı çağırıp geri dönerim diğer sorunumda asm kodları içerisinde nasıl etiket tanımlarım ve asm alt programı çağırırm

MCS kullanıyorum

HEXF2

ya beyler neden kimse birşey yazmaya tenezzül etmiyor sorduğum soru ya çok saçma ve gereksiz yada cevabı zor bir soru ben bu soruyu sormadan evvel arama yaptırdım ve pek birşey bulamadım en azından bir yerde tartışıldıysa linki verin abi buda mı zor çünkü bütün formu inceliyecek vaktim yok kusura bakmayın ama eskiye dönüş yaşanıyor galiba

ozangazi

örn:
.
.
.
asm

nop
setc portc.0
call lcdyaz          'alt programa dallanır
.
.
endasm

lcdyaz:
print "deneme"
return                 'alt programdan geri döner

ete

Bir tane cevap aldın. Birde ben yazayım istedim. Benimki biraz mantık cevabı olacak.

Önce ASM içinden PBP alt programı nasıl çağrılır veya çağrılabilir onu açıklayayım. Bu açıkladığımı denemedim. Ama program mantığı açısından doğru olduğunu garanti ederim.

ASM
...
...
...
endasm
Gosub EKRAN
ASM
..
..
..
ENDASM
Gördüğün gibi LCD ye yazı yazdıracağın zaman ASM yi ENDASM olarak bitir ve GOSUB EKRAN deyip bilgilerini ekrana yazdır. Buradan dönüşte tekrar ASM ye gir kaldığın yerden devam et.
Yinede önce Ozangazi'nin belirttiği direkt ASM içerisinden Call komutu ile LCD yazdırma bölümüne gitmeyi dene çalışıyorsa tercih et değilse benim açıkladığım şekil kesin çalışacaktır.

İKinci sorunu tam anlamadım ama galiba ASM içinde dallanma etiketleri nasıl yapılır diye soruyorsun. Bu normal Assembly de olduğu gibi etiket adı koyularak yapılabilir.
ASM
basla
     ....
     ...
     ...
bitir
    ...
    ....
    ...
son
endasm
gibi.

KOlay Gelsin
ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

SpeedyX

selamlar.
hemen ufak bir örnek yazayım. büyük ihtimalle çalışacaktır.
main:
   if portb.0 then goto rutin1
goto main

rutin1:
   asm
      movlw 0x07
      movwf CMCON
      btfss portb.0
      goto rutin2
      goto main
   endasm

rutin2:
   asm
      bsf INTCON.7
      loop:
      btfss portb.0
      goto loop
   endasm
   goto main

(c'de de bunlar geçerlidir.
return ali; için movlw ali, movwf _return_)

aslında bu dillerin farklarını tekrar konuşup, bu pbp den kurtulmalıyız. :)
Saygılar.

HEXF2

Abi sağolun ya ya gerçekten bu PBP güzel gibi gözüküyor ama çok cins bişey olur olmaz yerde hatalar veriyor ben asm kullanıyorum ve asm ile tümleşik kullanabileceğim bir dil arıyordum PBP dediler ama hem çok yavaş hemde bellekte çok yer kaplıyor o yüzden asm ile beraber kullanıyorum

Arkadaşlar konuyla pek alakası olmayak ama PIC16F628 i USART kullanarak seri bir eepromla haberleştirmek istiyorum USART 'ı senkron modunda çalıştırdık mı oluyor heralde ama veb beceremedim yani senkron modda clock ve data uçları var ben bu uçları eeproma bağlasam start ve stop bitlerini adres ve kontrol bilgilerini nasıl yapıcaz aynı zamanda biz eeproma bilgi yazdığımız zaman clock ucu otomatik kendi mi gönderiyor puls'i

bu kontrol ve adres bilgilerini teker teker göndersek olur mu acaba misal

ilk olarak kontrol word TXREG e yüklenir gider hemen arkasından adres byte'ı ve hemen arkasından data

acaba olur mu böyle hem senkron formatta PIC start ve stop göndermiyor biliyorum nasıl olcak bu iş

HEXF2

abi bişey sordukmu niye devamı gelmiyo bence bu sitede iki üş kişi var işten anlayan kasan bi soru sorduk mu cevap yok yaa alla alla neyse beyler hadi kolay gelsin

ete

@HEXF2,

Kızman hiç de hoş değil. Cevabı olan sorulara her kes elinden geldiği kadar cevap vermeye çalışıyor. Ancak cevabı olmayan veya uçuk sorulara da cevap gelmiyor. Zira kendimi örnek vereyim. Sen bir soru sordun ve ben bunun cevabını bilmiyorum veya emin değilim veya en azından hiç denemediğim bir şey. Dolaysıyla sessiz kalmayı tercih ediyorum. Ama sen illaki buraya her kes bilmiyorum- anlamam şeklinde de cevap yazsın istiyorsun. Yok öyle bir şey. Burada anlama pozisyonunda olan sensin. Cevap gelmiyor ise absürt bir şey sordun demektir. Veya sorun çok açık değildir. Bunun örneklerini çok fazla görüyoruz forumda. Bazen soru biraz daha açılınca cevaplar gelmeye başlıyor.

Gelelim senin soruna USART bir hardware porttur ve seri haberleşme için ayrılmış. Seri protokole uygun sistemi destekler. Gelelim epromlara ben seri olarak haberleşebilen bir eprom bilmiyorum. Epromların protokolleri de seri ama farkları var I2C - SPI gibi. Şimdi bunu USART'a nasıl uyarlayacaksın. Sanırım bunu kimse denememiştir veya kafadan olmaz demek lazım.

Sanırım durumu anlamışsındır.
ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

HEXF2

@ete dostum kızman hiç hoş değil diyosunda sorduğum soru hiç de abzürt bir soru değil bu bir
ikincisi bana anlama durumunda olan sensin demişsin sadece PIC lere yeni başladım diğer konuşarda aşağı kalacağımı sanmıyorum burada da neler bildiğimi nelerden anladığımı yazmıyorum görgüsüzlük olmasın

ikincisi mikroişlemcilere ve mikrodenetleyicilere yabancı değilim uzun yıllardır 8051,8052-BASIC gibi yongalarla gayet profosyonelce çalışıyorum zaten

ikicisi yazdığım yazıyı biraz dikkatli oku bak sen modluk yapıyorsun birde

ben EPROM la seri haberleşme yapıcam demedim epromla seri haberleşme yapmak istesem bir shift register kullanırım seri yollar paralel girerim bilgileri o birşey değil denenmiş birşey yani

benim sorduğum soru SERİ EEPROM la USART birimini senkron modda kullanarak nasıl haberleştirebileceğimdi

Çünkü USART modülü senkron modda ADC ve EEPROM gibi seri aygıtlarla haberleştiğini biliyorum ama denemedim

Sorduğum sorunun abzürt olduğuna karar verirken ilk olarak yazdığım yazıyı düzgün oku lütfen

Eğer sorduğum soru abzürt bir soruysa ben bu işi bırakır giderim sorduğum şey gayet mantıklı ve zaten olan birşey ama ben denemedim deneyen varsa yardımcı olur mu dedim

Ama dediğim gibi sitede bu işten anlayan bir iki kişi var diğerleri genelde sorulan sorulara ya link vererek yanıt veriyor yada SESLİĞİNİ kullanarak.........

ete

Her şeyden önce ben burada mod luk yapmıyorum. Bende senin gibi forumun bir üyesiyim. Bilgim beni bu yere getirdi. Hiç bir konuda idaalı da değilim. Bilgim dahilinde yardım isteyenlere yardım ediyorum. Bu bir amme hizmeti bütün amacım yeni yetişen gençlerin bir an evvel yeterli bilgiye sahip olabilmeleri. En azından benim edindiğim bilgiyi alabilmeleri. Çünki inandığım bir husus var bilgi biriktikçe ortaya eserler çıkıyor.

Sana gelince ufak bir ilave açıklaman olayı anlamama yetti. Yazdığını iyi okudum ama hitap tarzından ilk mesajından bir şey anlamadım. Sen konuyu bildiğin için başkasınında hemen anlayacağını sanıyorsun.
Zaten aldığın cevap sayısından da konuyu kaç kişinin anladığını tahmin edebilirsin.
Sana başarılar dilerim.
ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

HEXF2

Ok ete sorun değil de sorduğum sorunun cevabı gelir inşallah bilen birisi vardır umarım