Harici eepromda parametreleri yerleştirmek

Başlatan gogoce, 01 Kasım 2015, 16:51:04

gogoce

Merhabalar ustalar arkadaşlar

Değişik bir algoritma ile karşılaştım ve nereden yola çıkacağımı bulamadım

bir makinede 24c04 eepromda tüm parametreler saklanıyor . Parametre değişeceği zaman bir eeprom programlayıcı ile eeprom sökülüp pc ortamında programlandıktan sonra tekrar makineye takılıyor . Bu işi operatörün daha kısa zamanda yapabilmesini gerçekleştirmek için arkadaşıma yardımcı olmak istedim . Çıkan algoritma karşısında elim kolum bağlandı .

16f876a ve 16x2 lcd kullanarak makine başında pc ye gerek duymadan ilgili parametrelerin değiştirebilmeyi amaçladık .

aşağıda kodda da görüleceği üzere her parametre için 24c04 te 4 adet adres ayrılmış .

ÖRNEĞİN 0 NOLU parametre için eeprom adresleri 100-101-102-103
bu adreslere değer verileceği zaman şu şekilde değer veriliyor

örneğin değerimiz 6 olsun
100 adresine 30 (ascii 0)
101 adresine 30
102 adresine 30
103 adresine 36

değerimiz 29 olsun
100 adresine 30 (ascii 0)
101 adresine 30
102 adresine 32
103 adresine 39

Değer 149 olsun
100 adresine 30 (ascii 0)
101 adresine 31
102 adresine 34
103 adresine 39

toplam 32 parametre aynı mantıkla yerleştiriliyor . Bunu pc de programlamak için extra bir program yok . Ponyprog programında yapıyorlar

16f876a bu algoritmayı sığdırma şansımız olurmu?


Saygılar




eeprom_programla:
LCDOUT $FE,1,"PARAMETRE:",#PARAMETRE
LCDOUT $FE,$c0,"DEGER:",#DEGER
;PARAMETRE 0 İSE DEĞER   100-101-102-103 ADRESLERİNE YAZILACAK
;PARAMETRE 1 İSE DEĞER   104-105-106-107 ADRESLERİNE YAZILACAK
;PARAMETRE 2 İSE DEĞER   108-109-10A-10B ADRESLERİNE YAZILACAK
;PARAMETRE 3 İSE DEĞER   10C-10D-10E-10F ADRESLERİNE YAZILACAK
;PARAMETRE 4 İSE DEĞER   110-111-112-113 ADRESLERİNE YAZILACAK
;PARAMETRE 5 İSE DEĞER   114-115-116-117 ADRESLERİNE YAZILACAK
;PARAMETRE 6 İSE DEĞER   118-119-11A-11B ADRESLERİNE YAZILACAK
;PARAMETRE 7 İSE DEĞER   11C-11D-11E-11F ADRESLERİNE YAZILACAK
;PARAMETRE 8 İSE DEĞER   120-121-122-123 ADRESLERİNE YAZILACAK
;PARAMETRE 9 İSE DEĞER   124-125-126-127 ADRESLERİNE YAZILACAK
;PARAMETRE 10 İSE DEĞER  128-129-12A-12B ADRESLERİNE YAZILACAK
;PARAMETRE 11 İSE DEĞER  12C-12D-12E-12F ADRESLERİNE YAZILACAK
;PARAMETRE 12 İSE DEĞER  130-131-132-133 ADRESLERİNE YAZILACAK
;PARAMETRE 13 İSE DEĞER  134-135-136-137 ADRESLERİNE YAZILACAK
;PARAMETRE 14 İSE DEĞER  138-139-13A-13B ADRESLERİNE YAZILACAK
;PARAMETRE 15 İSE DEĞER  13C-13D-13E-13F ADRESLERİNE YAZILACAK
;PARAMETRE 16 İSE DEĞER  140-141-142-143 ADRESLERİNE YAZILACAK
;PARAMETRE 17 İSE DEĞER  144-145-146-147 ADRESLERİNE YAZILACAK
;PARAMETRE 18 İSE DEĞER  148-149-14A-14B ADRESLERİNE YAZILACAK
;PARAMETRE 19 İSE DEĞER  14C-14D-14E-14F ADRESLERİNE YAZILACAK
;PARAMETRE 20 İSE DEĞER  150-151-152-153 ADRESLERİNE YAZILACAK
;PARAMETRE 21 İSE DEĞER  154-155-156-157 ADRESLERİNE YAZILACAK
;PARAMETRE 22 İSE DEĞER  158-159-15A-15B ADRESLERİNE YAZILACAK
;PARAMETRE 23 İSE DEĞER  15C-15D-15E-15F ADRESLERİNE YAZILACAK
;PARAMETRE 24 İSE DEĞER  160-161-162-163 ADRESLERİNE YAZILACAK
;PARAMETRE 25 İSE DEĞER  164-165-166-167 ADRESLERİNE YAZILACAK
;PARAMETRE 26 İSE DEĞER  168-169-16A-16B ADRESLERİNE YAZILACAK
;PARAMETRE 27 İSE DEĞER  16C-16D-16E-16F ADRESLERİNE YAZILACAK
;PARAMETRE 28 İSE DEĞER  170-171-172-173 ADRESLERİNE YAZILACAK
;PARAMETRE 29 İSE DEĞER  174-175-176-177 ADRESLERİNE YAZILACAK
;PARAMETRE 30 İSE DEĞER  178-179-17A-17B ADRESLERİNE YAZILACAK
;PARAMETRE 31 İSE DEĞER  17C-17D-17E-17F ADRESLERİNE YAZILACAK

goto EEPROM_PROGRAMLA


Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

ete

#1
Bu işi yapmak o kadarda zor değil.
Önce yazılacak eprom adresini hesaplamak gerekiyor.
Adres=Parametre*4+$100
Yazılan=1234 ise
Bir=Yazılan dig 0+48
İki=Yazılan dig 1 +48
Uc=Yazılan dig 2 +48
Dort=yazılan dig 3 +48
Write adres, bir , iki , uc , dort: pause 10

Hepsi bu kadar. Program sadece parametre ve yazılacak bilgiyi soracak ve alıp yukarıdaki hesabı yaparak eproma yazacaktır.
Ete

edit: Adres değeride Hex formatında imiş. Bu nedenle 100 rakamlarının başına $ eklemek gerek. Adres değişkeni Word tipinde olmalıdır. Bunada dikkat et.

gogoce

Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

ete

Windows-10 un güzel bir hesap makinası var. Her formatta girilen sayıyı gösterebiliyor. Desimal tıklayıp 48 yazınca hex karşısında 30 görüyorsun. Çevirmekde kolay.
3*16+0=48
Diyelimki hex sayı =62. ==>.  6 *16 +2=98 desimal ediyor.
Yada tersi 98 desimal , 98/16=6, 6 * 16=96. Ve 98-96=2 böylece sayı 62 olarak hex e çevrilmiş oluyor.

Ete

gogoce

Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

gogoce

merhaba hocam

kopyalanmak istenen eeprom 24c04 müş
ST marka

aşağıdaki kodlar ile bir eepromdan diğerine kopyalamak istiyorum fakat işlemci reset atıyor

sda scl uçlarında kısadevre yok devrede onu kontrol ettim

dolu eepromu okuyup sorunsuz bir şekilde ekrana yazabiliyorum

boş eepromu da değiştirdim sonuç değişmedi,

kodlar aşağıda

EEPROM_KOPYALA:
A=0
i=0
XX=0
LCDOUT $FE,$80,"KOPYALANIYOR... "
LCDOUT $FE,$c0,"                "

for  i=0 to 255 step 1
                             
    i2cread O_SDA, O_SCL,%10100000,A,[VERI]   
    PAUSE 8
                             
                             
    i2cwrite K_SDA, K_SCL,%10100001,A,[VERI] 
    pause 8   
    A = A+1
    next i       
i=0
A=0
for  XX=0 to 255 step 1
                             
    i2cread O_SDA, O_SCL,%10100010,A,[VERI]   
    PAUSE 8
                       
    i2cwrite K_SDA, K_SCL,%10100011,A,[VERI] 
    pause 8   
    A = A+1
    next XX       
goto ana


24c04 te adres byte ve control bitinde 2. bit 1 yapılarak ikinci sayfaya geçiliyormuş . Bunu çözdüm fakat kopyalamadaki reseti anlayamadım

yardımcı olursanız sevinirim
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

gogoce

tris yazmacını yanlış ayarlamışım buton ile kopyalanacak eepromun sda ucu çakışmış :( problemi çözdüm
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

ete

İyi bari. Ancak akşama bakabilecektim bu işe.

Ete

Powered by EzPortal