avatar_ete

PIC Basic Ders-13 (Multiplex Çalışma)

Başlatan ete, 28 Ağustos 2011, 16:25:50

Evren Kılıç

erol abi,
hex dosyasını yükledim butonların fonksiyonları çalışmıyor ekran 535 ile gelip kalıyor. diğer programları yüklemeye çalıştım ama yine aynı hataları verdi.Özel mesaj le eposta adresimi gönderdim, dosyaları ek olarak gönderebilirseniz sevinirim.

elektro77

#61
SAYIN EVRENK:
Bende dahili eprom yazma ve okuma konusunda denemeler yaparken bahsettiğiniz byte ve word tipi değişken hataları ile  karşılaştım.
Sorunu çözdünüzmü.
Yardımcı olurmusunuz.
Eğer ete hocamın dediği gibi pbp ve mcs versiyon sorunundan kaynaklanıyor ise çalışan versiyonları banada göndserebilirmisiniz.
Saygılar.
elektro77@msn.com
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#62
Alıntı yapılan: evrenk - 25 Ağustos 2018, 10:17:15



BASLA: 
      IF ARTIR=0 THEN
        SAYAC=SAYAC+1
        YAZ=1
        IF SAYAC=1000 THEN SAYAC=999
        GOSUB BAK
        WHILE ARTIR=0:WEND
        GOSUB DELAY
      ENDIF
       
      IF AZALT=0 THEN
        SAYAC=SAYAC-1
        YAZ=1
        IF SAYAC=65535 THEN SAYAC=0
        GOSUB BAK
        WHILE AZALT=0:WEND
        GOSUB DELAY
      ENDIF
     
      IF RST=0 THEN
        SAYAC=0
        YAZ=1
        GOSUB BAK
        WHILE RST=0:WEND
        GOSUB DELAY
      ENDIF
     
      GOSUB BAK

      IF YAZ=1 THEN
      WRITE $01,SAYAC.BYTE1,SAYAC.BYTE0:PAUSE 10
      YAZ=0
      ENDIF             
     
      GOTO BASLA
END


eğer yanlış yorumlamadıysam Bu yazılımda herhangi bir tuşa basılınca eproma veri yazmaya gidiliyor.
bu işlemcinin ömrünü baya kısaltır diye düşünüyorum. Bu yazılım üzerinden konuşacak olursak ,bunun daha iyi bir yolu yokmudur.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Epromların yazma ömrü yaklaşık olarak 1.000.000 yazma dır. Çoğu zaman bu miktarın altında bile bozulan epromlar gördüm.
Bilgi neden eproma yazılır? önce bunu düşünelim. Sonradan kullanacağım bir bilgi eproma yazılmalıdır. Peki sürekli o bilgiyi eproma yazmak mantıklımı? elbette hayır. İdeal olanı bilgi değiştikten sonra bir kere yazılması kafidir. Peki bilgi değiştiği halde yazmıyorsam bana ne risk getirir? tabiiki en son değişmiş olan bilgiyi kaçırma riski getirir.
Verilen örnekte şu mantık güdülmüştür. Bir tuşa basılması demek o bilginin değişmiş olması ile eşdeğer anlam taşıyor. O halde bilgi yazılmalıdır.
Tuşa basılmadığı müddetçe bilgide değişmeyeceğine göre yazma söz konusu olmayacaktır. Sistem bana göre doğrudur. Başka bir önerin yada mantıksal fikrin varsa burada belirt tartışalım istersen.
Ete

Evren Kılıç

Alıntı yapılan: elektro77 - 04 Eylül 2018, 10:46:02
eğer yanlış yorumlamadıysam Bu yazılımda herhangi bir tuşa basılınca eproma veri yazmaya gidiliyor.
bu işlemcinin ömrünü baya kısaltır diye düşünüyorum. Bu yazılım üzerinden konuşacak olursak ,bunun daha iyi bir yolu yokmudur.
merhaba henüz çözüm bulamadım, butonların herhangi birine basıldığında durum değişikliği olduğu için eproma yazılması gerekiyor.

ete

İlk defa Basic derlemesinin bu kadar sorunlu olduğunu gözlemliyorum. Genelde yeni sürüm kurulup yamalarda yapıldıktan sonra sorun ortadan kalkıyor idi. Bu nedenle bir şeyleri yanlış yapıyorsunuz gibime geliyor.
Yada kullandığınız sürümler yanlış yada hatalı.

Ete

Evren Kılıç

Erol Abi,
Dediğiniz programları tekrar kurup denedim o zaman ama yine yanı satırlarda hata verip derlemeyi yapmadı. 255 de kaldı.

elektro77

Alıntı yapılan: ete - 04 Eylül 2018, 11:28:27
Epromların yazma ömrü yaklaşık olarak 1.000.000 yazma dır. Çoğu zaman bu miktarın altında bile bozulan epromlar gördüm.
Bilgi neden eproma yazılır? önce bunu düşünelim. Sonradan kullanacağım bir bilgi eproma yazılmalıdır. Peki sürekli o bilgiyi eproma yazmak mantıklımı? elbette hayır. İdeal olanı bilgi değiştikten sonra bir kere yazılması kafidir. Peki bilgi değiştiği halde yazmıyorsam bana ne risk getirir? tabiiki en son değişmiş olan bilgiyi kaçırma riski getirir.
Verilen örnekte şu mantık güdülmüştür. Bir tuşa basılması demek o bilginin değişmiş olması ile eşdeğer anlam taşıyor. O halde bilgi yazılmalıdır.
Tuşa basılmadığı müddetçe bilgide değişmeyeceğine göre yazma söz konusu olmayacaktır. Sistem bana göre doğrudur. Başka bir önerin yada mantıksal fikrin varsa burada belirt tartışalım istersen.
Ete

Elektronik bir cihazın ömrünün eğer bilinçli eskitme yapılmamışsa 10 yıl olduğuna dair bir gerçek var. Yada bir şehir efsanesi.
Bu durumun bununla bir ilgisi varmı.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#68
Alıntı yapılan: evrenk - 04 Eylül 2018, 12:10:01
Erol Abi,
Dediğiniz programları tekrar kurup denedim o zaman ama yine yanı satırlarda hata verip derlemeyi yapmadı. 255 de kaldı.
ben sizin programınızı aynen alıp ete hocamın tekniğini kullarak aynen çalıştırabildim. Bir sorun gözükmüyor.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Evren Kılıç

mcs ve arkasından PBP 2,60 programlarını kurdum, daha sonra sırası ile yamaları kurdum ve  kodları derledim ancak yine yazma ve okuma satırlarında ekli fotoğraftaki hataları verdi.

elektro77

read 0,sayac.lowbyte
read 1,sayac.highbyte

birde bu şekilde altaalta deneyin bakalım.
olur mu olur.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

sizin hata sayac değişkeninden kaynaklanıyor galiba. yukarıdaki tanımlamada bir sorun olabilir.
bende write komutunda hata vermişti düzeltmeden önce.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

hata veren programı buraya koy (tamamını) bir bakalım
Ete

Evren Kılıç

Alıntı yapılan: ete - 04 Eylül 2018, 14:43:48
hata veren programı buraya koy (tamamını) bir bakalım
Ete

Abi yarın akşam döneceğim eve, ancak o zaman koyabilirim.

Evren Kılıç

evet arkadaşlar,
programın tamamı ve aldığım hatalar aşağıda, ilginç olan önceki gün sadece yazma ve okuma satırlarında hata veriyordu şimdi ise ek deki gibi hata veriyor.
kurduğum promlar ise şu şekilde
1- MCS 4.0.0.0 sürümünü kurdum
2- PBP 2,60 programını kurdum (full yazıyordu)
3- Erol abini vermiş olduğu 3 adet yanayı kurdum. 
PBP programını kaynağı ise bu linkten:
http://ceyhuntopcuoglu.com/microcode-studio-plus-3-ve-pic-basic-pro-2-60-windows7-64-bit-uyumlu.html
kodlar :
'****************************************************************
'*  Name    : SAYAC.BAS                                         *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2018 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 27.08.2018                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
'32 BİT MAKİNALAR BU SİGORTA AYARLARINI KULLANSIN
@ DEVICE pic16F628A                      'işlemci 16F628                               
@ DEVICE pic16F628A, WDT_ON              'Watch Dog timer açık
@ DEVICE pic16F628A, PWRT_ON             'Power on timer açık
@ DEVICE pic16F628A, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic16F628A, MCLR_OFF            'MCLR pini kullanılMIYOR.
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak

''64 BİT MAKİNALAR BU SİGORTA AYARINI KULLANSIN VE MPASM İLE DERLEME YAPSIN
'#config
' __config _BODEN_ON & _BOREN_ON & _CP_ON & _PWRTE_ON & _WDT_ON & _LVP_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT
'#endconfig
'-----------------------------------------------------------------
DEFINE OSC 4
'-------------------------------------------------------------------------

PORTA=0:TRISA=%11110000     
PORTB=0:TRISB=%10000000   
CMCON=7
OPTION_REG=OPTION_REG=%00000010
'OPTION_REG=%00000100  'Pull up dirençleri AÇIK (PORTB.7 için) - Bölme oranı 1/32.
'bölücü ayarlaması  000=1/2, 001=1/4  , 010=1/8  , 011=1/16 , 100=1/32 , 101=1/64 , 110=1/128, 111=1/256
INTCON=%00100000         'Kesmeler aktif ve TMR0 kesmesi aktif

'-----------------------------------------------------------------


ZAMAN   VAR BYTE
SIRA    var BYTE
SAYI    VAR BYTE  'çevirme değişkeni
X       VAR BYTE  'ara değişken
BIRLER  VAR BYTE
ONLAR   VAR BYTE
YUZLER  VAR BYTE

I       VAR word  'döngü değişkenimiz
SAYAC   VAR WORD
POZ     VAR byte 75
Z       var byte
Y       VAR BIT
YAZ     VAR BIT

SYMBOL SH_CP=PORTA.0      ' SH_CP PİNİ
SYMBOL DS=PORTA.1      ' DATA PİNİ
SYMBOL ST_CP=PORTA.2      ' ST_CP PİNİ ÇIKIŞA GÖNDER

SYMBOL RST  =PORTB.7
SYMBOL ARTIR=PORTA.4       'Buton
SYMBOL AZALT=PORTA.5

PAUSE 100
INTCON.7=1  'tüm kesmeler açık
TMR0=169
'ON INTERRUPT GoTo KESME   'kesme oluşursa KESME adlı etikete git.
'SAYAC=000

BASLA: 
      IF ARTIR=0 THEN
        SAYAC=SAYAC+1
        YAZ=1
        IF SAYAC=1000 THEN SAYAC=999
        GOSUB BAK
        WHILE ARTIR=0:WEND
        GOSUB DELAY
      ENDIF
       
      IF AZALT=0 THEN
        SAYAC=SAYAC-1
        YAZ=1
        IF SAYAC=65535 THEN SAYAC=0
        GOSUB BAK
        WHILE AZALT=0:WEND
        GOSUB DELAY
      ENDIF
     
      IF RST=0 THEN
        SAYAC=0
        YAZ=1
        GOSUB BAK
        WHILE RST=0:WEND
        GOSUB DELAY
      ENDIF
     
      GOSUB BAK

      IF YAZ=1 THEN
      WRITE $01,SAYAC.BYTE1,SAYAC.BYTE0:PAUSE 10
      YAZ=0
      ENDIF             
     
      GOTO BASLA
     
       

'   AL:   LOOKUP X,[231,36,214,118,53,115,243,38,255,119,99,57],SAYI :RETURN
  AL:    LOOKUP X,[63,6,91,79,102,109,125,7,127,111,99,57],SAYI :RETURN

DELAY: POZ=0
      for I=0 to 1000
'         PAUSEUS 5
      Next
      RETURN
     
   
BAK:
      READ $01,SAYAC.BYTE1,SAYAC.BYTE0
      X=SAYAC DIG 0 :GOSUB AL:BIRLER=SAYI
      X=SAYAC DIG 1 :GOSUB AL:ONLAR=SAYI
      X=SAYAC DIG 2 :GOSUB AL:YUZLER=SAYI
      SHIFTOUT DS,SH_CP,1,[YUZLER,ONLAR,BIRLER]           
      PULSOUT ST_CP,1  ' BİLGİYİ ÇIKIŞA GÖNDER
     
      return   
             
         
END

Powered by EzPortal