Proton + Eeprom'a Veri Kaydetme Ve Çağırma

Başlatan ercan_wrc, 10 Mart 2011, 20:55:52

ihsan_atay

olayı çözdüm. muhittin ustama teşekkür ederim. ilk pic e yazılımı yüklediğimizde eprom daki değerler $ff bu da float değişkende sorun yaratıyor.
başka bir değişken ayarlayarak epromdaki değerleri sıfır yaptım.
Dim isi_deger As Float
Dim isi_deger_hafiza As Byte 
Dim ilk As Byte
isi_deger_hafiza = ERead 0
If isi_deger_hafiza = $ff Then GoTo ILKCALISMA

BASLA:
    If DURUM = 0 Then GoTo OLCUM
    If DURUM = 1 Then GoTo MENU
    If DURUM = 2 Then GoTo ISI_AYAR
    If DURUM = 3 Then GoTo NEM_AYAR    
ILKCALISMA:
    EWrite 0,[ilk]
    EWrite 1,[ilk]
    EWrite 2,[ilk]
    EWrite 3,[ilk]
    EWrite 4,[ilk]
    DURUM=1
    GoTo BASLA

Disable
KESME:
        Inc DURUM 
        If DURUM = 4 Then DURUM = 0
        
        INTF = 0
        
        Resume 
        Enable
        End 


FUNKY


EWrite  komutunu kullanırken  Byte  değişkeni için 1 ara Word için 2 ara Dword veya Float  değişkenler için 4 ara bırakılarak aderslenir. sanırım sorununuz bundan kaynaklanıyor ..

ayrıca  birçok parametreyi tek satırda yazabilirsiniz

EWrite  0,[a ,b ,c ,d,]

isikyasar

Merhaba arkadaşlar
LPG olayına bende kafayı bozdum.
sistem sorunsuz bir şekilde çalışıyor, ama eread ve ewrite kodunu halledemedim. bu konuda eksik bişeymi yapıyorum..


menu:
Print At 1,1,"GAZ FIYATI      "
Print At 2,1,Dec2 gazfiyati,"TL          "

If PORTC.1=1 Then
DelayMS 40
gazfiyati = gazfiyati + 0.01
End If

If PORTC.2=1 Then
DelayMS 40
gazfiyati = gazfiyati - 0.01
End If

If PORTC.0=1 Then
  EWrite 10,[gazfiyati]
DelayMS 300
  GoTo menu1
  End If
 
GoTo menu

buraya kadar normalmi?

muhittin_kaplan


isikyasar

gazfiyati= eread 10
sehirici=eread 14
sehirdisi=eread 18                   KAYITLI OLAN VERİLERİ SİSTEM ÇALIŞTIĞI ANDA GÖREBİLMESİ İÇİN NEREYE EKLEMEM GEREKİYOR       
litre=eread 22
oranfiyat=eread 26

----------------------------------------------------------------------------------------------------------
Device 16F877
Xtal 4
Input PORTC.0
Input PORTC.1
Input PORTC.2

Input PORTD.0
Output PORTD.1
PORTD.1=0


Adin_Res = 10
Adin_Tad = FRC
Adin_Stime = 50
Dim deg1 As Word ' analog gaz ölçme değişkeni

Dim depo As Word
Dim gazfiyati As Float
  gazfiyati=0
Dim sehirici As Float
sehirici=0
Dim sehirdisi As Float
  sehirdisi=0
Dim litre As Float
  litre=0
Dim oranfiyat As Float
  oranfiyat=0
Dim sicikm As Word
sicikm=0
Dim sdisikm As Word
sdisikm=0
Dim yasar As Float
yasar=0

TRISA = %00000001
ADCON1 = %10000000

Declare LCD_DTPin PORTD.4
Declare LCD_ENPin PORTD.3
Declare LCD_RSPin PORTD.2
DelayMS 10

basla:


goto basla
end

muhittin_kaplan

"başla" nın hemen üstüne

Device 16F877
Xtal 4
Input PORTC.0
Input PORTC.1
Input PORTC.2

Input PORTD.0
Output PORTD.1
PORTD.1=0


Adin_Res = 10
Adin_Tad = FRC
Adin_Stime = 50
Dim deg1 As Word ' analog gaz ölçme değişkeni

Dim depo As Word
Dim gazfiyati As Float
  gazfiyati=0
Dim sehirici As Float
 sehirici=0
Dim sehirdisi As Float
  sehirdisi=0
Dim litre As Float
  litre=0
Dim oranfiyat As Float
  oranfiyat=0
Dim sicikm As Word
sicikm=0
Dim sdisikm As Word
sdisikm=0
Dim yasar As Float
yasar=0

TRISA = %00000001
ADCON1 = %10000000

Declare LCD_DTPin PORTD.4
Declare LCD_ENPin PORTD.3
Declare LCD_RSPin PORTD.2
 DelayMS 10

 gazfiyati= eread 10
sehirici=eread 14
sehirdisi=eread 18                    
litre=eread 22
oranfiyat=eread 26
 
basla:


goto basla
end

isikyasar

pic i programlama alanındaki ayarlar doğrumu acaba.

eread ve ewrite kodunu kullandığımda arttıracağım veya eksilteceğim değerleri değiştiremiyorum.


muhittin_kaplan


isikyasar

#23
Asıl sorunu buldum.

örnek kod----

Device 16F877
Xtal 4

Input PORTC.0
Input PORTC.1
Input PORTC.2


Declare LCD_DTPin PORTD.4
Declare LCD_ENPin PORTD.3
Declare LCD_RSPin PORTD.2

Dim mehmet As Float
mehmet=0
DelayMS 10

mehmet = ERead 10
DelayMS 50

 
  basla:
If PORTC.1=1 Then
mehmet=mehmet + 0.01
DelayMS 100
End If

If PORTC.2=1 Then
mehmet=mehmet - 0.01
DelayMS 100
End If


  If PORTC.0=1 Then
  EWrite 10, [mehmet]
  DelayMS 50
End If


Print At 1,1,Dec5 mehmet , "   1"   

  GoTo basla


Mehmet adında tanımlı değişken Float büyüklüğünde ise değeri arttırma yada eksiltme yapmıyor.  Mehmet değişkenini Word olarak yaptığımda çok güzel sorunsuz çalışıyor.

Benim asıl istediğim ekrandaki değeri (0.00) olacak şekilde yapmak istiyorum.

Dim mehmet as Word   ( bu tanımlama ekranda küsüratlı olarak en düşük 0.01 ile 9.99 arası olacak. ekranda bu şekilde görülebilirmi.)

mierdogan

Merhaba

Bende bir termostat yapmak istiyorum set değerini aşağıdaki gibi eproma yazdırıyorum fakak aynı adresten okutmak istediğimde değer herzaman 55 gözüküyor sizce nerede yanlış yapıyorum? Değişkenim Byte

İkinci Ewrite, epromda daha önceden değişiklik yapıp yapmadığımı işaretlemek için eklediğim bir satır

          Print At 1,1,"PLEASE WAIT..."
                    Print At 2,1,"SAVING..."
                    DelayMS 1500
                    EWrite 10,[SETTEMPERATURE]:DelayMS 10
                    EWrite 20,[0]:DelayMS 10
                    Cls
                    GoTo START


Okutma komutu

SETTEMPERATURE=ERead 10
    OFFSETTEMP=ERead 30


Teşekkürler

isikyasar

ısıyı DS18B20 ile ölçüyorsaneğer. bu eleman ilk açılışta 50 derecenin üzerinde sanırım 68 dereceydi, bir değer gönderiyor pic e.

mierdogan

ölçüm yapmıyorum sadece set edilen değeri bir sonraki güç kesintisinden sonrada aynı kalmasını istiyorum ayrıca ADC çevrimi için normal pot kullanıyorum kod yazmayı yeni öğreniyorum..

Aklınıza başka bir şey geliyor mu?

Teşekkürler

isikyasar

yanlış anlamadıysam,

değişken bir değer giriyorsun pice, yada değişken bir değer okuyor pic.

bu okuduğu değer elektrik kesilme anında eproma yazılacak, ve elektrik geldiğinde eprom dan okuyacak. ve ekranda gösterecek.

F.T

#28
ISIK= ERead 1            'ISIK DEĞERİ BASLANGIÇTA OKUNUR

If ISIK=255 or ıISIK=0 Then ISIK=1 'ISIK DEĞERİ İLK YUKLEMEDE 255 VEYA 0 GELİRSE 1 OLARAK AYARLANSIN

'--------------------------ANA PROGRAM----------------------------------------------------------------------------------------------------------

BASLA:


EWrite 1,[ ISIK ] 'ISIK  AYARLANIR VE KAYDEDİLİR
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

mierdogan

Aynen öyle hocam

set menüsü var girip ayar yaptıktan sonra store düğmesine basılınca set edilen değeri hafızaya alıp oradan okuyacak..

Nasıl yapabilirim? eprom yazdırma komutlarımda hata var gibi geliyor ama nasıl yapmam gerektiğini bilgim dahilinde çözebilmiş değilim

Teşekkürler