amssemblerden bıktım bende mcs de program yazmak istiyorum

Başlatan mert27, 22 Şubat 2005, 14:03:57

mert27

öncelikle bana bügüne kadar yapmış olduğunuz yardımlar için çok teşekkür ederim
benim yeni isteğim basic dilinde program yazmak bunu istememin sebebine bakarsak lcd nin kolay sürülmesi bir adet pause komutuyla istedildiği kadar bekleme yapılabilmesi ve daha bilmediğim bir sürü şey ... işte bende bu gibi nedenlerle micro code studıo yazılımında program yazmak istiyorum elimde bir paralel port programlayıcı var ve bir adette multipic programmer şeması var öncelikle paralel portta kullanılan propıc programmer için gereken donanımı yazılımı
ve pic i nasıl programlayabileceğim hakkında yorumlarınızı bekliyorum elimde şu an    3adet 16f628   ve   1 adet 16f877  var. mcs için gereken bilgileri link olarakta koyarsanız beni çok mutlu etmiş olursunuz. ukalalığım kusuruna bakmayın ama eğer bütün sorunlarımı teker teker yazmaya kalkarsam hepinizin benden bıkacağına inanıyorum o yüzden böyle bişey istiyorum. hem böylece benim gibi bu işten anlamayan herkes bu yazıdan yararlanabilir.

SIMDIDEN YARDıMLARıNıZ IÇIN TEŞEKKÜRLER.

temha

pbp iin Orhan ALTINBAŞAK'IN KİTABINI almanı tavsiye ederim programlayıcı sorunununu anlayamadım senin programlayıcın çalışmıyormu yoksa bütün piclerimi programlamıyor. ben propic 2 gold u yaptım. sendemi bunu yapmak istiyorsun istersen yardımcı olabilirim.
armaganelektronik@hotmail.com

Veli B.

Pbp düşündüğün kadar iyi değil.Bahsettiğin gibi lcd sürmek seri veri alışverişinde bulunmak çok kolay bir hale getirilmiş ama bunun bir bedeli var.Şu aşamada sanırım henüz amatör olarak uğraşıyorsunuz ama ilerde bu bedel ağır gelmeye başlayabilir.Aşırı kod üretme, kesmeler için problemler, aynı şekilde zamanlama konularında ki sıkıntılar vs ...
Bu sebeple ben asm tavsiye ederim ama asm uzun ve meşakkatli diyorsanız konularında uzmanlaşmış olan arkadaşlarımızın, üstatların tavsiyesi doğrultusunda proton veya c ye geçmeniz ilerisi açısından çok daha olumlu ve sağlıklı olur.
proton yapı ve kod uyumluluğu açısından pbp ya oldukça paralel hatta çoğu komut için kullanım aynı.

HEXF2

@katana

pbp ile asm dilleri karmaşık olarak kullanılırsa dediğin problemler ortadan kalmaz mı?

Veli B.

Daha önceleri bende bu şekilde düşünüyordum ve adc lari bile asm blokları olarak gömüyordum.Pause ları parçalara bölerek döngüler kuruyor ve kesme kaçırmamaya çalışıyordum.Ne yazıkki kesme kaçırıyor.Benim kanaatimce bu anlamda mantıklı bir çözüm teşkil etmez.Neden;

1. PBP komutları işlerken kesinlikle kesmeleri komut işletimi esnasında değerlendirmiyor, işlem bittiktren sonra ilgili flaglar kontrol ediliyor.Peki bu süre içerisinde birden fazla kesme oluşmuş ise, biz en iyi ihtimalle bir tanesini tesbit edebileceğiz.
2. Bunu önlemek için, bu tip komutları asm ile yazacak isek baştan sona asm kullanmak gerekmeyecekmi?
3. İncelediğim kadarı ile komut yapıları itibarı ile neredeyse birbirinin aynı olan( Proton hakkında yeterli olduğumu düşünmüyorum, görüşlerim sadece beni bağlar) bir alternatif varsa ve bu sakıncaları büyük oranda yok ediyorsa, PBP kullanmanın kanımca bir esprisi kalmıyor.
Bu sebeple bende şu an CCS ve Proton kullanmaya başlamak için hazırlıklara başladım.Her ikisini de öğrenip kararımı sonra vereceğim.Ama gönlüm C den yana.

gofe

Sayın abiler sitemizin anket sonuçları da asm demiş, mplab demiş.
Bir son söz söyleyelim, oradan oraya sıçrarken ortada kalıyoruz.
PBP mu yoksa MPLAB mı hangisinde devam etmek iyi olacak?

CaFFeiNe

arkadaşlar benim kanaatimce asm ile uğraşmak istemiyorsanız ve zorlanmadan güzel programlar yazmak istiyorsanız picbasic i es geçin yazımı hemen hemen aynı ama yetenekleri ondan daha iyi protona geçin derim (donanımsal kesmelerin olması bile protona geçmek için yeter) biraz zorlanarak iyi programlar yazmak istiyorsanız CCS olabilir :) ama bende tam bilmiyorum öğrenmeye çalışıyoruz

mhk

Protonun en sevmediğim tarafı editörü. Elim alışmış ctrl-insert ,shift-insert  bunu yapamıyorum onda. Dedim ya alışkanlık olduğu için kolay vazgeçilmiyor. Diğer bir nokta birkaç küçük değişikle pic basic pro ile yazdığınız programları olduğu gibi proton ile kullanabilirsiniz. Hatta pause komutlarını bile. Donanımsal kesmelerde , ve seri alışverişlerdeki kilitlenme sorunları protonda da mevcut. Lakin bunu aşmanın yolu zaman gerektiren işlemleri en aza indirmektir. Örneğin; şehir şebeke frekansı ölçeceksiniz ve LCD kullanacaksınız. Ekransda Frekans=50 Hz. yazacak.
Bunu her defasında yazdırırsanız pic bu işlem için uğraşacak. Oysaki ilk başta ekrana Frekans=  Hz. yazısını bir defa yazın. Sadece ölçeceğiniz frekans değerini LCD nin ilgili sütununa gönderin.
Lcdout $fe, $88, DEC2 frekans yazdığınızda ilk satır 8ve 9.sütuna sadece frekans değerini yazacak. Yani iki sütuna veri yazdırmış olacaksınız. Diğer bir nokta kesme kullanırken pause cinsinden bekleme kullanmamaya dikkat edin. Eğer uzun gecikem istiyorsanız, for next döngüsü içine pauseus gibi kısa gecikme kullanmaya çalışın. Eğer daha da hassas işlerde uğraşıyorsanız. İç içe for next kullanın lakin içine pause yada pauseus kullanmayın. Onun dışında pek bir problemle karşılaşmadım ben. Aslında bu tip yazımları püf noktası yada kod optimizasyon konularında yazmak daha mantıklı olurdu. Aklıma gelmişken optime işlemlerinden biride for next döngüsü kullanırken.

For a=0 to 10

ile
For a=1 to 10

arasında ilk kodda 1 byte tasarrufunuz vardır.
LCD yazımlarında ise

ekranmesaj:
LCDOUT $FE,satirx+satiry
for dongu=lcddeger  to lcddegerson
    LOOKUP dongu,["59 Serisi Hazir... 34Yikama Vak.DOLUM YAPILDI.TAHLIYE TAMAM!!!IPTAL EDILDI!!! BASINC VAR!!!"],lookdeger

LCDOUT lookdeger
next dongu
return


şeklinde kullanırsanız pic te daha az yer kaplamış olursunuz.
Örnek olarak ;
satirx=$D4:satiry=0:lcddeger=0:lcddegerson=17:gosub ekranmesaj

yazdıktan sonra lcd de lookup ile belirtilen 0-17 arasındaki mesajlar yazdırılır.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

gofe


engin_

Bende asm kullanıyordum

Birkaç gündür picbasicpro ve mikroC kullanıyorum. İkisinin de güzel ve kötü tarafları var gibi yada ben yeni öğrenmeye başladığımdan daha herşeyin farkında değilim. Örneğin PBP de asm olarak oluşturduğunuz değişkenleri programınızda kullanamıyorsunuz.  mikroC de ise Lcd kullanımını sadece bir portun bacakları ile gerçekleştirmeniz lazım. Ama altprogramlar c de daha işlevsel olsa gerek nede olsa altprograma bir değişken gönderme özelliği var.

Ama bu programların çalışması için ne kadar zaman gerektiği bir muamma

gofe

Sorumda gezmediğim yer kalmadı, arkadaşlar bir sonuç yok, hangi dilin üzerine düşelim allah aşkına bir sonuç çıkaralım, bütün dillere göz attım, burada anlatılanların hepsini okudum.
Diller ve pic programlamada hep ilk birkaç konuya girilmiş ama gerisi gelmemiş, anlatımlar hep yarım kalmış bunları tamamlamayacakmıyız?Bu konuda birşeyler yapılması lazım değil mi?

engin_

Öncelikle asm öğrenmeli (zaten 35 tane komut) hem ilerde kendi üst seviye programlama dilini bile geliştirebilirsin.

Bunun dışında üst seviye programlarda kullandıklarım hakkında:

mikroC sonunda beni deli etti. 4 değişken tanımladım ram de boş yer kalmadı. Daha yapacağımı yapamadan program hafızası da doldu. C esnek bir dil olmasına karşın microC bana pek esnek gelmedi. Desteklediği özellikler güzel ama işimi görmedi

Aynı programı PBP de de yaptım hala ram da ve  program hafızasında boş yer var.Programın similasyonunda da sorun yok gibi.

Gerçek şuki PBP ye yan gözle bakarken  :D işimi baya bi kolaylaştırdı.

Son olarak üst seviye diller  tüm isteklerinize cevap vermiyor.

Örneğin kodların ne kadar sürede çalıştığını bilmiyorsunuz. Bu gözü kapalı  uçuruma karşı yürümek gibi... Programı yazıp, bakalım uçurumdan düştük mü diye habire denerseniz sorun yok tabi.

mhk

Alıntı Yap
Sorumda gezmediğim yer kalmadı, arkadaşlar bir sonuç yok, hangi dilin üzerine düşelim allah aşkına bir sonuç çıkaralım, bütün dillere göz attım, burada anlatılanların hepsini okudum.
Diller ve pic programlamada hep ilk birkaç konuya girilmiş ama gerisi gelmemiş, anlatımlar hep yarım kalmış bunları tamamlamayacakmıyız?Bu konuda birşeyler yapılması lazım değil mi?

Sevgili gofe, ne öğrenmek istediğin sana bağlı. Burda herkes asm ile başlamıştır. Sonunda ise kendine en yakın bulduğu dil ile devam etmiştir. Bütün dillerin kendine has kolaylık ve zorluğu vardır. Ben pbp ile devam ediyorum. Bugüne kadar çözemediğim bir konu olmadı , pbp içinde farklı kullanımlar denedim vs vs. Objektif yaklaşımlarda bulunduk hatalardan bahsettik, onları nasıl aşmamız gerektiğinden bahsettik , öğrenmesi en kolay dil pbp dur, yok beni tatmin etmez diyorsan asm ye devam et. Lakin 18 serisi işlemciler ile karşılaştığında üst seviye dilin ne kadar uygun olacağını göreceksindir. Eğer c alt yapın varsa c dili kullan, yoksa basic ile başla sonra c ye geç. Benim c alt yapım olmasına karşın ccs yada diğer c compiler ile çalışmadım. Çünkü yaptığım işleri çözebiloyorsam diğerlerine gerek yok. Bana yeterli gelmediğini anladığım anda başka arayışlara geçmek elbette mümkün. Sonuç Pbp ile başla ( Eğer asm alt yapın varsa ) Kolay gelsin
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

mmengi

Alıntı yapılan: "mhk"Diğer bir nokta birkaç küçük değişikle pic basic pro ile yazdığınız programları olduğu gibi proton ile kullanabilirsiniz. Hatta pause komutlarını bile. Donanımsal kesmelerde , ve seri alışverişlerdeki kilitlenme sorunları protonda da mevcut.

Nasıl bir kilitlenme oluşuyor?

mhk

Seri alışveriş ve kesme kontrollü işlemlerde rastladım. Gerçi daha önce sorun yaşadığım bir seri haberleşme programında kilitlenme yaşamıştım. Derleyiciden kaynaklandığını düşündüm ve aynı programı protona uyarlayarak derledim. Aynı sorun devam ediyordu. Belkide pbp kodlarını olduğu gibi kullanmamdan kaynaklanıyordur bilmiyorum.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana