avatar_ete

PIC Basic Ders-09 (Eeprom ve Sensör kullanımı)

Başlatan ete, 28 Ağustos 2011, 16:17:03

ahmet5454

Selamlar Ete hocam setup bloğu içerisinde kullandığınız bu kodun amacı nedir?
YER=0
FOR Z=0 TO 127
   READ Z,TEMP
   IF TEMP<255 THEN 
     YER=Z :EXIT
   ENDIF
NEXT

READ YER,SAYAC.BYTE1,SAYAC.BYTE0
IF SAYAC=65535 THEN 
  SAYAC=0
  WRITE YER,SAYAC.BYTE1,SAYAC.BYTE0
ENDIF  
GOSUB DELAY
GOSUB BAK

BASLA: 
Bu kod setup kısmında bulunmakta ve bu kod bir defaya mahsus çalışıyor değil mi hocam?

ete

Bütün işlemci epromlarının hafızası boş olduğunda 255 ($FF) ile doldurulmuştur.
Değişke adres sisteminde sıfır nolu adresten itibaren kayıt yaparak ilerliyor ve her defasında 2 byte ötesine kayıt yapıyoruz. Bu kaydı yaptıktan sonra önceki kayıt üzerine yeniden $FF yazıyoruz ki boş olduğu belli olsun diye.
Program başlangıcındaki bahsini ettiğin satırlar Eprom içinde 255 den küçük sayıların başladığı adresi arıyor. Bulduğunda kayıt yerimiz orası olmuş oluyor. Bunu ilk çalıştırmada yer belirlemek amacı ile yapıyoruz. Program içinde ise yer=yer+2 yaparak yeni yeri 2 adres öteye taşıyoruz ve oraya kayıt yapıp her defasında 2 adres öteye taşıyoruz yer değerini.
O satırlar 255 den küçük sayı arıyor sadece. Çünki 255 ler boş olan adresleri gösteriyor.

Ete

ahmet5454

Selamlar Ete hocam epromun ilk 2 adresini kullandık kayıt yapıyoruz.
Kayıt yaptığımız adreslerin dolduğunu  hangi komut nasıl  algılıyor?
Programda büyük ihtimalle bu işi bu kod yapıyor sanırsam eğer bu kod
yapıyorsa biraz açıklayabilir misiniz? Bu kodda (YER > 127)  127 sayısı neden
kullanıldı hocam?   
 IF YAZ=1 THEN
        WRITE YER,$FF,$FF:YER=YER+2:IF YER>127 THEN YER=0
        WRITE YER,SAYAC.BYTE1,SAYAC.BYTE0
        YAZ=0
      ENDIF  
      return


ete

Eprom adreslerine bakarak 255 den küçük bir değer aranıyor. Bu değer kayıt yapıldığının işaretidir. Dolma diye bir şey yok. Kayıt yapılmışmı yapılmamışmı ona bakıyoruz ve kayıt yapılmış yer bizim geçici kayıt adresimiz oluyor çünki kayıt yaparken onu 2 artırıyoruz.

Bu programda kullanılan işlemcide Eprom kayıt adresi 128 adet (0-127) bu nedenle yeni adres yaratırken 127 rakamını aşıp aşmadığına dikkat ediyoruz. 127 yi geçmiş ise yeniden başa dönüp sıfır nolu adresten yeniden kayıt yapmaya başlıyoruz.

Ete

ahmet5454

#94
Selamlar Ete hocam değişken adresli eprom kaydedici programında değişiklik yaparak 2 ad word tipinde değişkenin eproma kaydedilmesini sağladım simülasyonda çalışıyor.Fakat bir yanlışım var mı acaba Ete hocam eğer bakmanız mümkünse bir kontrol edebilirseniz çok sevinirim.İyi geceler

ete

#95
Programda bir hata göremedim. Ancak fazlalık var.
Bir birinin aynı işii yapan iki etiket var. Birinin adı Bak diğeri Bak_1
İkiside aynı iişi yapıyor ise bir birlerinin işini bozabilirler.
Örnekle açıklayayım.

Artır tuşuna bastım Sayac değeri bir artırıldı ve program BAK etiketine giderek diyelimki eprom sıfırdan başlıyordu. Sıfırdan itibaren 4 byte $FF yazdı. Zaten o adreslerde $FF vardı ve bu işlem lüzumsuz yapılmış oldu. Prensibimiz önce yaz sonra yazılanı $FF le olması gerekirdi. Ardından Yeni yerin değeri 4 oldu ve 4 nolu adresten itibaren 4 byte sayac ve sayac_1 değerleri yazıldı.
Diğer butona bastık bu seferde Sayac_1 değeri 1 artırıldı.Program Bak_1 etiketine geldi.
Önce Epromun 4 nolu adresinden itibaren 4 adrese $FF yazıldı. Yer değeri 4 artırıldı ve yeni değerleri yeni yer adresinden itibaren yazıldı. Gerek varmıydı? bence yok.Tek bir BAK satırı bu işi rahatlıkla yapar.

Bak_1 satırlarına hiç gerek yok bana kalırsa.

Ete

ahmet5454

Öneriniz için çok çok tesekkür ediyorum çok sağolun varolun hocam iyi geceler

Powered by EzPortal