avatar_ete

PIC Basic Ders-04 (Program Oluşturma Genel Kuralları)

Başlatan ete, 28 Ağustos 2011, 14:47:36

ete

İşlemci senin beklediğinden çok daha hızlı çalışıp bir anda bir sürü şey yapıyor.
verdiğin  kodlar üzerinde açıklayayım.
Şimdi PORTB.0 daki butona bastığını varsayalım.
Basar basmaz; aşağıdaki satırlar işlenecek ve SAYI=1 yapılacak.
BASLA:
IF PORTB.0=0 THEN SAYI=SAYI+1

SAYI=1 olunca hemen altındaki satır nedeni ile;
IF SAYI=1 THEN LOW PORTA.0
Birinci led sönüyor. SAYI=1 olduğundan ve henüz 2 olmadığından alttaki satır atlanıyor.
IF SAYI=2 THEN LOW PORTA.1

GOTO BASLA  komutu ile program yeniden BASLA satırına geliyor. Ama daha sen elini tustan çekmedin.
Hemen SAYI=2 yapılıyor ve bu seferde ikinci led sönüyor ve daha sen alini tustan çekinceye kadar sayı değeri muhtemelen 50-60 lara dayanıyordur.

Bu nedenle her tuşa basılışta yalnızca bir kez işlem yapılmasını sağlaman gerekiyor. Bunun çareside bir kere basılıp iş yapıldımı tuşun bırakılmasını beklemek olur. Örneği aşağıda veriyorum.

BASLA:

IF PORTB.0=0 THEN SAYI=SAYI+1
IF SAYI=1 THEN LOW PORTA.0
IF SAYI=2 THEN LOW PORTA.1
WHILE PORTB.0=0:WEND  'bu komut tuşun bırakılmasını bekler. Bırakılmadan yeniden işlem yaptırmaz.
GOTO BASLA

Bu şekilde bir dene bakalım sonuç ne olacak.

Ete


Reytabu

Hocam çok teşekkür ederim.
Program şimdi ledleri  istediğim gibi sırayla söndürdü.
Sizden öğrenecek çok şeyim var.

Saygılarımla

Hattuşa

Alıntı yapılan: Reytabu - 26 Haziran 2012, 19:46:24
Hocam çok teşekkür ederim.
Program şimdi ledleri  istediğim gibi sırayla söndürdü.
Sizden öğrenecek çok şeyim var.

Saygılarımla

sadece senin değil usta, ETE hocamızdan hepimizin öğreneceği çoook şey var

cemalkamaci

ETE hocam saygılar.
Ders 4 'ü inceledim. Proje4c de şöyle bir durumla karşılaştım.
LCD'ye gönderilen komut şu şekilde olursa

BASLA:
      LCDOUT $FE,1,"  SEC  => MENU  "       (birinci çift tırnaktan sonra boşluk VAR)

tırnak içindeki yazıların tamamı ekranda görülebiliyor.

Fakat LCD'ye gönderilen komut aşağıdaki gibi olursa

BASLA:
      LCDOUT $FE,1,"SEC  => MENU  "      (birinci çift tırnaktan sonra boşluk yok)

ekrana "S" harfi çıkmamaktadır.
Kısaca LCDOUT $FE,1,"abcdefgh...."  şeklindeki komutlarda ilk karakter ekrana çıkmamaktadır.

Şöyle bir çözümle bu problem bertaraf edilmiştir.

    LCDOUT $FE,1
      PAUSE 10
      LCDOUT "SEC=>MENU"

Yani komut parçalı olarak yukarıdaki gibi yazıldığında 1.nci karakterlerde ekrana çıkabilmiştir.

Saygılar sevgiler, burada sunduğun çalışmaların için çok teşekkürler

ete

Şimdi merak edip denedim. Bende hiç sorun gözükmüyor.
Tabiiki simulasyon yapıyorum. Gerçek devrede ne çıkar  hiç denemedim ama sorun olmaması gerekir.

Sendeki sorun muhtemelen kullandığın derleyiciden veya simulasyonda deniyorsan simulasyon programından kaynaklanıyor olabilir.

Ete

odemiriz

Ete hocam saygılar,
Sıfırdan öğrenmeye başladım sayenizde
bende de aynı sorun var 32bit bilgisayar fakat kaynaktaki dosyayı değiştirmeden dahi derlesem .asm da hata veriyor. Ayarlardan mpsamları kapadım fakat olmadı.

saygılar

Alıntı yapılan: Reytabu - 23 Mart 2012, 11:03:27
Sayın ETE

İşin mantığını öğrenme amaçlı pic 16F88 ile minik bir devre yaptım.
Programı derlerken sizin örneğinizden 16f88 olarak düzelterek yazdığım aşağıdaki kodlarda Micro Code Studio komutlarında hata veriyor. Bu kodları sildiğim zaman ise hex dosyasını oluşturuyor.
Yardımınızı rica ederim

@ DEVICE pic16F88
@ DEVICE pic16F88, WDT_ON
@ DEVICE pic16F88, PWRT_ON
@ DEVICE pic16F88, PROTECT_OFF
@ DEVICE pic16F88, MCLR_ON
@ DEVICE pic16F88, INTRC_OSC_NOCLKOUT  'XT_OSC - HS_OSC –

ete

Hata nın ne olduğunu buraya yazmaz veya kopyalamaz isen yardımcı olmamız zor.
Bana kalırsa aşağıdaki linkte yazılanları yeniden okuyup değerlendir.
http://etepic.com/index.php/topic,300.0.html
Ete

cmsnmz

Merhaba.Ete hocam, proje4a daki kodları yazdım.Verdiğiniz linkteki ayarlarıda uyguladım ama yine de .asm kısmında hata alıyorum.Oluşan hataları buraya yüklüyorum.Yardımınızı bekliyorum.
İyi günler.

ete

Hatalar sigorta ayarlarından kaynaklanıyor. Öncelikle aşağıdaki linkte yazılanları çok dikkatlice oku.
http://etepic.com/index.php/topic,1687.0.html

Makinan 32 bit ise MPASM yi kullanmadan derleme yapman gerekir. Bu durumda 64 bit için kullanılan MPASM formatında sigorta ayarı vermemen gerekir.
Sende her iki format da da sigorta ayarı gözüküyor. Birini kullanınca diğerini kapatmak gerekir. İkisi bir arada olamaz.

Ete

cmsnmz


yanuma

ilk kurduğumda gördüm ama şimdi entegre listesi yok

ete

Ne olduğunu anlamak zor. Kaldırıp yeniden kursan iyi olur.
Ete

yanuma

entegre adını getittirdim fakat diger entegreler gelmiyor PBP dosyasını  C dosyasının içine klasör halinde yüklü PIC16F628 adı geldi ama desteklemiyor diyor

ete

Pic Basic Pro da program yazıp derlemek için başlıca iki ayrı programa ihtiyaç var. Makinen 64 bit ise bir üçüncüde gerekebilir.
Birincisi PBP derleyicisi. Son versiyon 2.60 olarak internette araştırıp bulman gerekiyor. Bununla ilgili daha önceden linkler verildi.
Diğeri program yazıp düzeltme ve derleme işlemlerini yaptıracağın arayüz programı olan MicroCodeStudio (kısaca MCS) dir.
Bunun Versiyon 4.00 olanı kurmalısın. Makinen 64 bit ise derleme işlemlerinde MPASM kullanman gerekiyorki bunuda ayrıca makinene kurman gerekiyor yada var ise Proteus klasöründe Tools alt klasörü içinde zaten kurulu geliyor.

Bu konuyu iyi anlayıp ne yapman gerektiğini anlamak için aşağıdaki linki okumalısın.

http://etepic.com/index.php/topic,300.0.html

Yazdıklarından sanki bazı şeyleri eksik yapıyorsun anlamını çıkartıyorum. Linki okuyup anlarsan ne yapman gerektiğini daha iyi anlayacaksın.

Ete

yanuma

#29
hocam en sonunda başardım fakat bir farkla mcsk trial sürüm  olsun ALLAH büyük  öğrenince satın alırım inşallah.  Sormak istediğim konu bunlardan hangisini yükleyeceğim entegreye saygılarımla

Powered by EzPortal