24LC64 ile Kayan yazı için yardım?

Başlatan bilgehansahin84, 27 Ekim 2006, 17:35:01

bilgehansahin84

Sadece PIC kullanırken
Karakterleri göstermek için teker teker şu şekilde tanımlarım :

A:
ks=7
satir1=%00111000
satir2=%01111100
satir3=%11000110
satir4=%11000110
satir5=%11000110
satir6=%11000110
satir7=%11000110
satir8=%11111110
satir9=%11111110
satir10=%11000110
satir11=%11000110
satir12=%11000110
satir13=%11000110
satir14=%11000110
satir15=%11000110
satir16=%00000000
return

Mesela A harfimi gösterilecek, hemen döngüyü A etiketine gönderiyor ve değerleri alıp entegreye yüklüyorum. Ama şimdi ise şöyle olacak. (Tabi öyle olacağını sanıyorum) :

Artık bu karakterler EEPROMdan alınacakya, onun için PIC e şunu yazıcam :
if deger=65 then
I2CREAD DPIN,CPIN,$A0,ADRES,[SAYI]:PAUSE 100
endif

eğer deger A ise EEPROM daki ADRES ile belirtilen yerdeki data bilgisini al gel. Bu datada yukarıdaki gibi tanımladığım Karakter dataları olacak. Ama bunları EEPROMa nasıl kaydedicem bulamadım. Elle yapmaya kalksam IP-PROG da, günler sürer. 2500 satır.
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

mhk

Alıntı yapılan: "bilgehansahin84"
Tuttum sizden yardım istedim. Ya ben anlatamadım, ya siz yanlış anladınız, bu işin içinden çıkamadık. Şimdi tekrar soruyorum : Ben, bir önceki mesajlarımda da gördüğünüz karakter datalarını EEPROM a nasıl yükleyebilirim?  Şimdi anlaşılmıştır inşallah

16F877 hafızası bitti ise 18F452 kullan. Bu arada arkadaşların yazdığı gibi Örneğin A harfini oluşturmak için gerekli olan değişkenleri mikroişlemci program hafızasına tanımlamak bir çok avantajı beraber getirir. Bilgisayarda  VB , Delphi vs.  ile kendi arabirim programını yazarak , Kayan yazıda oluşmasını istediğin karakterleri birer birer gönderip , gönderdiğin karakterleri olduğu gibi eeproma yazman daha mantıklı. Yani eepromda bilgisayardan gönderdiğin karakterler sıralı olarak saklanmalı. Mikroişlemci bu sıralı karakterleri okumalı, sonra alt programa giderek bunları istediğin değişkenlere atayarak kullanmalı. Hafıza doldu yapamam diye bir şey olmaz ! bir üst entegreye geçebilirsin. Yada programda gereksiz tüm kısımları silebilirsin. Amaç sadece kayan yazı yapmaksa 16F877 nin yarı hafızası ile ( Karakter tanımlamaları dahil ) yapılabiliyor.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

bilgehansahin84

Siz yanlış anlamışsınız. Ben PIC hafızasını şu şekilde doldu dedim. Program iki kısımdan oluşuyor: 1. Programın ana kısmı, yani kayan yazı devresi için değerleri gösterme kaydırma saklama....
2.si ise karakter tablom. Yani A dan Z ye, a dan z ye, 0 dan 9 a, işaretciler....
ben zaten gösterilmesi gereken cükleyi PIC in hafızasındaki EEPROMa kaydediyorum. Dediğiniz gibi PC arayüz bağlantısı ile bunu değiştiriyorum. Ama PIC hem asıl programı ve hemde karakter tablosunu almadı. onun için atıyorum PIC EEPROM da "BİLGEHAN" kayıtlı : PIC ilk harfi alıyor "B". Sonra B yi oluşturmak için satır datalarını EEPROM (24LC64) den çekiyor. Yani çektirmek istiyorum. Onun içinde yardım istedim.
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

vatandas30

bence karakter tablosu picin hafızasında olsa daha iyi olur. ben yaptığım yazılarda hep böyle yapıyorum. ama dışarıdan girilen yazıları harici eproma kayıt ediyorum. yoksa bir harfi okumak için 7-8 defa epromdan okuma yapılacak . bu da bayağı bir zaman kaybı olur ve yazıda titreme olur sanırım.

XX_CİHAN_XX

Bu iş için seri eeprom kullanmak biraz sorunlu olur gibime geliyor ama neyse bazı şeyleri deneyerek görmek gerekir.Yöntem olarak sana şunu önerebilirim.Daha pratik yontemde vardır belki ama zamanında benzer bir uygulama için bende şöyle yapmıştım.
bir excel sayfası ac ekranı kutucuklara ayır 15x7 + bosluk = 15x8 boyutunda hücrelere ayır.Kod cıkaracagın harf sayısı kadar olusturacagın 15x8 lık kutucukların ıcıne karakter kodlarını olustur.yukarıda A harfını olusturmussun mesela aynen o sekılde kutucukların ıcıne 1-0 yerlestırerek tum karakterlerını olustur.
Buraya kadar yaptıgımız sey sadece karakterlerın bınary olarak kodlarını cıkarmak.Bu nu zaten tektek yapmak zorundasın.Gelelim bunları eeproma aktarmaya.Bunları icprogdan aktarabilmen için bildiğim kadarıyla bu kodların hex formatında yazılmıs olması gerekır.Dolayısıyla gerıye yapman gereken tek bır ıslem kalıyor.
bir tane text dosyası acıcaksın ve eeproma yazılmasını ıstedıgın sıraya gore excel tablosundakı bınary karekter kodlarını hex e cevırıp  text dosyasına sırayla ve yanyana yazıcaksın.ornegın yukarıda binary kod olarak yazdıgın A harfıni text dosyasına gecırırken yazman gerekenler:
38 7C C6 C6 C6 C6 C6 FE FE C6 C6 C6 C6 C6 C6 00
Yukarıda yazan 16 adet kod A harfının kodu.Bunu text dosyasına yazdıktan sonra
altına aynı sekılde B yi Cyi....
istediğin sıraya gore  hepsını yaz ve o text dosyasındakı yazılanları kopyala(kopyalarken dıkkat et yazılanlar dısında bir bosluk alma)
ve sonra ıc progda sol ust kosedekı 00FF yazan yerdekı ilk F nin ustune yapıstır.işlem tamam.
Burada karakter kodlarını henuz cıkarmadıysan direk hex olarakta kod cıkarmaya başlıyabılırsın.Ama excel tablosunda cıkarmak daha kolay olacaktır.Daha sonra tek yapman gereken bunları yukarıda analttıgım sekılde hex e donusturmektır.
hepsı bukadar..Bu kod cıkarma ıslemı elle tektek yapılmak zorundadır.
Oturursan en fazla 1-2 gunde kod cıkarma ıslemı bıter.eeproma aktarmakta
sadece copy- paste den ıbaret.
Kolay gelsin...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

OG

Alıntı YapTuttum sizden yardım istedim. Ya ben anlatamadım, ya siz yanlış anladınız, bu işin içinden çıkamadık. Şimdi tekrar soruyorum : Ben, bir önceki mesajlarımda da gördüğünüz karakter datalarını EEPROM a nasıl yükleyebilirim? Şimdi anlaşılmıştır inşallah



MOD OLARAK:
Sen anlatamadın arkadaşım. Anlatmış olsan bile anlatamadın. Çünkü burada sana yardımcı olmaya çalışan insanlara "Tuttum sizden yardım istedim" gibi bir cümle kullanman kabalıktır. Önce bunu düzelt.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mhk

Sana şöyle bir yol göstereyim. Mikroişlemci hafızasına herhangi bir harf yükleme. İlk yapacağın iş, mikroişlemci programını yazarken. Karakter tablosunu oluşturmak olsun. A harfi için değişik versiyonları (Geniş gösterim , klasik gösterim dar gösterim vs. ) olmakla birlikte 5 ile 8 değişkene ihtiyacın olabilir.Örneğin 24 serisi bir eeproma , bilgisayardan alınan A harfi kaydedilir. Sonra mikroişlemci eepromdan bu bilgi okunur. Okunan bilgi karakter tablo dönüşümü için kullanılan alt programa gönderilir. (Okunan karakterin A olduğunu varsayıyorum.) Burda A harfini oluşturmak için gerekli olan değişkenlere değerler yüklenir ve geri dönülür. Mikroişlemci sırasıyla bu verileri ne yapacaksa ( Kaydırma , bit işleme vs ) kullanır ve ekranda gösterilebilir.  
veritablo:
 '************************ A *****************************
  If verial = "A" Then
    veri0 = $7C: veri1 = $12: veri2 = $11: veri3 = $12: veri4 = $7C
  Endif
 '************************ B *****************************
  If verial = "B" Then
    veri0 = $41: veri1 = $7F: veri2 = $49: veri3 = $49: veri4 = $36
  Endif

return


Eğer sorun seri eeproma bilgi nasıl kaydederim yada okurum ise forumda biraz araştırma ile sonuca ulaşabilirsin.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

mavi

Dostum  zaten konuyu çözmüşsün karakterler elinde var eeprom programlamayıda biiliyorsun.devrende kullanmışsın. e geriye ne kaldı karakter tablondan lookup komutuyla çektiğin verileri tek tek eeproma orjinal komutu ile yazdıracaksın ha bunu yapamadım diyorsan karakter tablonu rapide yükle arkadaşlar bu karakterleri eeproma yükleyemedim bir iki kod değişikliği yaparmısınız yukleyecek şekilde dersen sanırım herkez yardımcı olmaya çalışacaktır.sorun yüklemede değil sanırım arkadaşların o karakter tablosunu tek tek yazacak vakitleri yok.sen yaz yukle lookup tablosunu yap bak bir çok kişi çıkacaktır yardımına koşan.

sorunu mutlaka bilgisayarda çözmek zorunda değilsin.Yazılmış tablo elinde, bir tane döngü halinde eeprom yazma komutu ekle lookup tablosunda ne varsa senin için eeproma kaydetsin  877 kaydedildimi oku programlayıcı ile elinde tablo dosyası olsun.


Kodlar bunlar:  5x7
TABLO1:
  LookUp deger,[_  
$00,$00,$00,$00,$00,_   ;bosluk 4
$0,$0,$7D,_               ;!     7
$14,$7F,$14,$7F,$14,_   ;#    12
$24,$2A,$7F,$2A,$12,_   ;$    17
$23,$13,$8,$64,$62,_   ;%    22
$5,$22,$55,$49,$36,_   ;&    27
$0,$60,$50,_           ;'    30
$0,$41,$3E,_           ;(    33
$0,$3E,$41,_            ;)    36
$15,$E,$1F,$E,$15,_       ;*    41
$8,$8,$3E,$8,$8,_       ;+    46
$0,$6,$5,_             ;,    49
$8,$8,$8,$8,$8,_       ;-    54
$0,$3,$3,_               ;.    57
$20,$10,$8,$4,$2,_      ;/    62
$3E,$51,$49,$45,$3E,_   ;0    67
$01,$7F,$21,_           ;1    70
$31,$49,$45,$43,$21,_   ;2    75
$46,$69,$51,$41,$42,_   ;3    80
$04,$7F,$24,$14,$0C,_   ;4    85
$4E,$51,$51,$51,$72,_   ;5    90
$06,$49,$49,$29,$1E,_   ;6    95
$60,$50,$48,$47,$40,_   ;7   100
$36,$49,$49,$49,$36,_   ;8   105
$3C,$4A,$49,$49,$30,_   ;9   110
$0,$1B,$1B,_           ;:   113
$0,$36,$35,_           ;;   116
$14,$14,$14,$14,$14,_   ;=   121
$30,$48,$45,$40,$20,_   ;?   126
$32,$49,$55,$49,$3E,_   ;@   131
$3F,$48,$48,$48,$3F,_   ;A   136
$36,$49,$49,$49,$7F,_   ;B   141
$22,$41,$41,$41,$3E,_   ;C   146
$3E,$41,$41,$41,$7F,_   ;D   151
$41,$49,$49,$49,$7F,_   ;E   156
$40,$48,$48,$48,$7F,_   ;F   161
$2E,$49,$49,$41,$3E,_   ;G   166
$7F,$08,$08,$08,$7F,_   ;H   171
$41,$7F,$41,_           ;I   174
$40,$7E,$41,$01,$02,_   ;J   179
$41,$22,$14,$08,$7F,_   ;K   184
$01,$01,$01,$01,$7F,_   ;L   189
$7F,$20,$10,$20,$7F,_   ;M   194
$7F,$04,$08,$10,$7F,_   ;N   199
$3E,$41,$41,$41,$3E,_   ;O   204
$30,$48,$48,$48,$7F,_   ;P   209
$3D,$42,$45,$41,$3E,_   ;Q   214
$31,$4A,$4C,$48,$7F,_   ;R   219
$26,$49,$49,$49,$32,_   ;S   224
$40,$40,$7F,$40,$40,_   ;T   229
$7E,$01,$01,$01,$7E,_   ;U   234
$7C,$02,$01,$02,$7C,_   ;V   239
$7E,$01,$0E,$01,$7E,_   ;W   244
$63,$14,$08,$14,$63,_   ;X   249
$70,$08,$07,$08,$70],veri  ;Y   254
Return

TABLO2:
  LookUp deger,[_
$61,$51,$49,$45,$43,_   ;Z  4
$41,$41,$7F,_           ;[  7
$7F,$41,$41,_           ;] 10
$1F,$15,$15,$15,$2,_   ;a 15
$E,$11,$11,$9,$7F,_       ;b 20
$2,$11,$11,$11,$E,_       ;c 25
$7F,$9,$11,$11,$E,_       ;d 30
$C,$15,$15,$15,$E,_       ;e 35
$20,$40,$48,$3F,$8,_   ;f 40
$1E,$25,$25,$25,$18,_   ;g 45
$F,$10,$10,$8,$7F,_       ;h 50
$1,$5F,$11,_           ;i 53
$5E,$11,$1,$2,$0,_      ;j 58
$11,$A,$4,$7F,$0,_      ;k 63
$1,$7F,$41,_           ;l 66
$F,$10,$C,$10,$1F,_       ;m 71
$F,$10,$10,$8,$1F,_       ;n 76
$E,$11,$11,$11,$E,_       ;o 81
$8,$14,$14,$14,$1F,_   ;p 86
$3F,$18,$28,$28,$10,_   ;q 91
$8,$10,$10,$8,$1F,_       ;r 96
$2,$15,$15,$15,$9,_       ;s 101
$2,$1,$11,$7E,$10,_       ;t 106
$1F,$2,$1,$1,$1E,_       ;u 111
$1C,$2,$1,$2,$1C,_       ;v 116
$1E,$1,$6,$1,$1E,_       ;w 121
$11,$A,$4,$A,$11,_       ;x 126
$1E,$5,$5,$5,$18,_       ;y 131
$11,$19,$15,$13,$11,_   ;z 136
$24,$42,$43,$42,$3c,_   ;Ç 141
$16,$65,$61,$61,$1e,_   ;Ğ 146
$1e,$61,$21,$61,$1e,_   ;Ö 149
$21,$7f,$21,_           ;İ 154
$1e,$41,$01,$41,$1e,_   ;Ü 159
$C,$52,$53,$53,$24,_   ;Ş 164
$4,$22,$23,$22,$1C,_   ;ç 169
$1E,$65,$65,$65,$18,_   ;ğ 174
$E,$51,$11,$51,$E,_       ;ö 179
$1F,$42,$1,$41,$1E,_   ;ü 184
$1,$1F,$11,_           ;ı 187
$4,$2A,$2B,$2A,$12],VERI ;ş 192
Return

kodlarını yükle bir görelim değiştirip yükleyelim.Senin ne yaptığını senden iyi kimse bilemez...
Telecommander Monster Of Network

Ziya

glcd font programlarından bir tanesini indir ve fontlarını mouse ile tanımla. Sana bütün fontların hex tablosunu verir. ISIS üzerinde bir işlemci ve bir 24c64 tasarla. Programla bu hex bilgilerini 2464 e yükle. 2464 verilerini binary olarak kaydettir. Icprog ile bu dosyayı 2464'e yazdırt.

i2c okuma işleminin arkasına da delay koyma. Yazma işleminde 3ms gibi bir delay olmalı. Ama okumada delaya gerek yok. Zaten i2c kütüphane kodları acknowledge polling yapıyor.  Yazmada bile delay koymana gerek kalmayabilir.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

bilgehansahin84

Alıntı yapılan: "bilgehansahin84"29 Ekim 2006; 0:42:54            


--------------------------------------------------------------------------------

Konu uzadı ve ben tekrar istediğimi toparlamak istiyorum.

Bir kayan yazı panosu yapmak istiyorum. 16 satır 152 sütun. Bunun için PIC 16F877 kullanıyorum. Ama kullandığım değişkenler ve program ile zaten PIC hafızası doldu. Banada karakter tablosunu bir EEPROM dan çekebilirsin dediler. Bunun için 24LC64 ü seçtim. Sıra geldi 2500 satırlık, PIC için oluşturduğum Karakter Tablosunu 24LC64 içerisine kaydetmeye. Ama nasıl?

Tuttum sizden yardım istedim. Ya ben anlatamadım, ya siz yanlış anladınız, bu işin içinden çıkamadık. Şimdi tekrar soruyorum : Ben, bir önceki mesajlarımda da gördüğünüz karakter datalarını EEPROM a nasıl yükleyebilirim?  Şimdi anlaşılmıştır inşallah


Arkadaşlar yukarıda kalın harflerle belirttiğim kısımdaki lisanımdan dolayı hepinizden ÖZÜR DİLİYORUM. Amacım kesinlikle bir kimsenin kalbini kırmak değildir, olmadıda. O kısımda eksik bir kelime, söylemek istediğimi sizlere yanlış aktarmama sebep olmuş. Lakin mesajın başından itibaren kesinlikle aksi bir cümle kurmama dikkatinde bulunsamda, kabul ediyorum ki, kullandığım kelimeler yalnış.

Uyarılarından dolayı OG Hocama teşekkür ediyorum.
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

bilgehansahin84

Arkadaşlar yukarıdaki açıklamalarınızdan dolayı hepinize teşekkür ediyorum. Şimdi her şeyi, EEPROM u daha iyi anladım sanıyorum. Bana karakter tablosunu PIC içerisinde sakla diyorsunuz çoğunlukla. Fakat o zaman 16F877 yetmiyor. Onun için bir şeyleri başka bir yere aktarmalıyım. Buda karakter tablosu oldu. Ama yavaşlık titreme oluşturur diyorsunuz. O zamanda 16F452 kullanayım diyorum. 256K lık EEPROMu var. işimi görür sanıyorum. Ama şöyle bir sorunum var. Ben 16F877 ile ilgili baskı devreyi plakete aktarıp malzemelerini bile yerleştirdim. İlk deneyimim aklıma PICin yetersiz olabileceği hiç gelmedi. Onun için çareyi bu çalışmam için Harici bir EEPROM a tabloyu aktarmakta buldum.

Bu anlattıklarım doğrultusunda siz  bana nasıl bir yol önerebilirsiniz?
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

Ziya

18F452 ile 16F877 bacak isimlendirmeleri neredeyse aynı. Yani 16F877 yerine kullanabilirsin. EEPROM hafızası 256K değildir.

Fontların için statik bir dizi tanımlayıp içerisine aktarabilirsin. 18F452 bu iş için gayet uygundur. 16kword program alanı (32K) vardır. Bunun yarısını program için kullansan 16F877 için yzadığın kod rahatlıkla sığar. Geri kalan kısma 8kword (16k lık karakter dizisi) bilgi aktarabilirsin. Bu da sana 24c128 ile aynı kapasiteyi verir. Erişimi de son derece hızlıdır.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

bilgehansahin84

Varya hocam nasıl rahatlattınız beni bir bilseniz. İnşallah yazdığınız şu bir kaç satır cümle kadar kolay olur işim. Teşekkür ediyorum.  :)
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

bilgehansahin84

Şimdi katalogdan ikisini karşılaştırdım, yani bacak siralarını, AYNI. Hiçte bakmamıştım 3 gündür. Plakete 877 değilde 452 yi yerleştirmem her şeyi hallediyor. Aynı bağlantılar ve aynı baskı devre. Çöpe gitmesine hiç gerek kalmadı artık. Ne diyim, EEPROM uda arada öğrendik ya sayenizde, hepinizden Allah razı olsun.

Sıra geldi ANTALYA'da 18F452 bulmaya   :(
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

bilgehansahin84

Alıntı yapılan: "Ziya"glcd font programlarından bir tanesini indir ve fontlarını mouse ile tanımla. Sana bütün fontların hex tablosunu verir.
......

Hocam şimdi fark ettim, bu glcd programlarından bir ikisinin ismini verebilirmisiniz. Dediğiniz gibi ise harika bir şey bu. Sabırsızlıkla bekliyorum. Teşekkür ederim.
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.