Prof. kayan yazılar hakkında bir soru ?

Başlatan berkay_yalan, 10 Kasım 2008, 13:10:45

berkay_yalan

Arkadaşlar aklıma takılan birkaç soru var sizinle paylaşmak istedim.

Bazı kayan yazılar çok uzun yazı alabiliyor mesela 2000 karakter. Böylece istenilen yazı yazılabiliyor.

Burada ne tür bir ram kullanılıyor ?

Birde professional kayan yazılarda neden işlemciler tercih ediliyor? Pic iş görmüyormu? Yoksa sadece pic ile atmel arasındaki hız farkı mı ?

---

Mesela 18F452 ile yapılmış bir kayan yazı, @logan ustanın forumda yayınlamış olduğu devreden bahsediyorum. Bende onunla uğraşıyorum. Şu halde 54 karakter alabiliyor.

Bu devreye 24C512 taktığımı varsayarsam.

24C512 ---> 512byte
1 karakter ---> 8 bit
8 bit ---> 1byte
1byte'dan ise 512 karakter

mi elde edilebilir? Bu mantığı anlamış değilim.

sagamen

herkEse kolay gelsin

berkay_yalan

Alıntı yapılan: "sagamen"48t08  ben bunu kullanıyorum
Biraz daha detaylı bilgi verme şansın varmı ilk defa kullanacağım kusura bakma.


ugurtarlaci

@Berkay_Yalan

24C512  512 Byte değil, 64Kbyte tır. Herbir harfi 1 Byte ile kodlamak istersen 64.000 karkter basabilirsin.

Hesaplaman yanlış olmuş. 24c04  512 Byte tır.
Kayan yazının kapasitesi işlemci ile pek alakalı bir durum değildir.

SRAM kullanırsan dataları saklamak için batarya düzeneğine ihtiyacın olacak. Seri EEprom lar veya Paralel EEprom lar kullanmalısın bence.

Kolay gelsin.
Zoru Başarırım , İmkansız Biraz Zaman Alır....İmza... YENİ NESİL GENÇ TÜRK MÜHENDİSLERİ......

lamercik

""Birde professional kayan yazılarda neden işlemciler tercih ediliyor? Pic iş görmüyormu? Yoksa sadece pic ile atmel arasındaki hız farkı mı ? ""

öncelikle cevaplamaya bu cümleden başlamak istedim. PIC diye tabir ettiğimiz icat ne zamandan beridir sizin işlemci diye tabir ettiğiniz ama gerçekte mikrodenetleyi diye tabir edilen sınıftan çıkarıldı? çıkarıldıda benimmi haberim yok? çıkaran neye göre neye dayanarak çıkarmış ??? eğer bu PIC mikrodenetleciyi değilse ben yıllardır bunlarla boşamı uğraştım yada işlemci diye yıllardır beni kandırdılarmı???

eğer profesyonel bir kayanyazı yapmak istiyorsan öncelikle donanım sorununu çözmelisin ve daha sonra pic mi yoksa atmel mi tartışmasını başlatmalısın. ama ben genede bu soruya cevap vermek istiyorum profesyonel bir kayan yazı için pic sana fazla fazla yeter vede hayal edemiyecen kadar çok olanaklar sunar önüne.

kayan yazının çok uzun yazı alabiliyor olması kesinlikle mikrodenetleyici ile alakalı bir durum değildir. bağlarsın bir tane 24C512 yada 24C256 al sana istemediğin kadar uzunlukta yazı girebilme özelliği

24C256 = 32Kb tır buda 32x1024=32.768 adet harf girebilmen demektir.
bu tür seri epromlara veri yazmak yaklaşık olarak 25 ile 40 mS arasında değişir. örneğin 24C256 nın veri yazma süresi yaklaşık 35mS dir gene bu tür epromlar I2C haberleşme mantığı ile çalışırlar. okuma süreleri ise nS'yeler seviyesindedir.

ram konusuna gelirsek eğer 16 serisi bir mikrodenetleyici kullanılıyor ise en popüleri 16F877 dir 368 Byte rama sahip bir işlemcilir. haa dersenki bu bana yetmiyo ki çok çok yetmesi lazım bir adet Sram bağlayarak kolay bir şekilde sorununu çözebilirsin. ancak bu tür sram larda elekrik kesintilerinde verilerin silineceği için bir pil düzeneğine ihtiyacın vardır. daha kolay bir çözüm tabikide mevcuttur. 18 serisi bir mikrodenetleyici ile şu günlerde popüler olan 18F452 1536 Byte rama sahip bir mikrodenetleyicidir. al sana tepe tepe kullanıcan ram hafıza doldur doldurabilirsen....

anti parantez sormadan cevaplayım belki aklına takılanlar olur. kayan yazının toplam harf kapasitesi eprom bellekte ekranda tek seferde görünen karakter sayısını ise ram bellekte tutmak işin en kolay vede herkesin kullandığı bir yöntemdir. (tabiki benimde :D)

lojikmemo1

Merhaba
PIC - avr - 8051 - avr32 - arm - FPGA -intel p4 celeron - amd :D. Farketmez kayan yazı yapmak için. Mühim olan kod ve algoritmadır. Bir de bir şey ekleyeyim kimse kızmasın pic basic ile hatta genelleyelim BASIC dili ile kod yazmak, karmaşık algoritmalar kurmak biraz zor c ile çok daha temiz kod yazabilirsin. Ayrıca yukarıda yazdığım işlemcilerden PIC hız yönünden sondan 2 ama ben pic  18f4520 ile çok da güzel bir kayan yazı yapmış bir de eeprom koayarak karakter hafızasını 6000 karakter olarak genişletmiştim.
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

berkay_yalan

değerli arkadaşlarım bilgiler için çok sağolun ben 25c512 eeprom kullanmaya karar verdim ben basic kullanıyorum fakat profesyonel değilim bu nedenle profesyonel kayan yazıda yapamıyorum forumda sanıyorum lojikmemo ya ait olan kayan yazıyı beğendim programcı bilgime dayanarak söylüyorum bu kayan yazı bana göre profesyoneldir yanlız kayan yazı kodları c ile yazılmıs eğer lojikmemo arkadaşta yardımcı olursa eepromu onun devresine eklemek istiyorum hayır vaktim yok derse basic e devam edeceğim.

eeprom dan söz etmişken aklıma birkaç soru takıldı bu soruları sizlere sormak istedim

soru 1 ) 24c04, 24c64, 24c512 bu eepromlar kullanımı aynı kodlarlamı oluyor mesela 24c04 kullanılmış bir devrede 24c64 yada 512 kullanılabilirmi

soru 2 ) kayan yazının daha fazla karakter alması icin kayan yazı kaynak kodu üzerinde hangi kısım eklenmeli mesela aşağıya örnek verdim.

unsigned int yinele,data;
unsigned int karakter[]={0x3F,0x48,0x48,0x48,0x3F,0x00  //A
                        ,0x7f,0x49,0x49,0x49,0x36,0x00  //B
                        ,0x3e,0x41,0x41,0x41,0x22,0x00  //C
                        ,0x7f,0x41,0x41,0x41,0x3e,0x00  //D
                        ,0x7f,0x49,0x49,0x49,0x41,0x00  //E
                        ,0x7f,0x48,0x48,0x48,0x40,0x00  //F
                        ,0x3E,0x41,0x49,0x49,0x2E,0x00  //G
                        ,0x7F,0x08,0x08,0x08,0x7F,0x00  //H
                        ,0x41,0x7F,0x41,0x00            //I
                        ,0x11,0x5F,0x11,0x00            //İ
                        ,0x02,0x01,0x41,0x7e,0x40,0x00  //J
                        ,0x7f,0x08,0x14,0x22,0x41,0x00  //K
                        ,0x7f,0x01,0x01,0x01,0x01,0x00  //L
                        ,0x7f,0x20,0x18,0x20,0x7F,0x00  //M
                        ,0x7F,0x10,0x08,0x04,0x7F,0x00  //N
                        ,0x3E,0x41,0x41,0x41,0x3E,0x00  //O
                        ,0x7f,0x48,0x48,0x48,0x30,0x00  //P
                        ,0x3e,0x41,0x45,0x42,0x3d,0x00  //Q
                        ,0x7f,0x48,0x4C,0x4a,0x31,0x00  //R
                        ,0x32,0x49,0x49,0x49,0x26,0x00  //S
                        ,0x40,0x40,0x7F,0x40,0x40,0x00  //T
                        ,0x7E,0x01,0x01,0x01,0x7E,0x00  //U
                        ,0x1E,0x41,0x01,0x41,0x1E,0x00  //Ü
                        ,0x7C,0x02,0x01,0x02,0x7C,0x00  //V
                        ,0x7E,0x01,0x0E,0x01,0x7E,0x00  //W
                        ,0x63,0x14,0x08,0x14,0x63,0x00  //X
                        ,0x70,0x08,0x07,0x08,0x70,0x00  //Y
                        ,0x43,0x45,0x49,0x51,0x61,0x00  //Z
                        ,0x00,0x00,0x00,0x00,0x00,0x00  //Space
                        ,0x3E,0x45,0x49,0x51,0x3E,0x00  //0
                        ,0x21,0x7F,0x01,0x00            //1
                        ,0x21,0x43,0x45,0x49,0x31,0x00  //2    
                        ,0x42,0x41,0x51,0x69,0x46,0x00  //3
                        ,0x0c,0x14,0x24,0x7f,0x04,0x00  //4
                        ,0x72,0x51,0x51,0x51,0x4e,0x00  //5
                        ,0x1e,0x29,0x49,0x49,0x06,0x00  //6
                        ,0x40,0x47,0x48,0x50,0x60,0x00  //7
                        ,0x36,0x49,0x49,0x49,0x36,0x00  //8
                        ,0x30,0x49,0x49,0x4a,0x3c,0x00  //9
                        ,0x1E,0x61,0x21,0x61,0x1E,0x00  //Ö
                        ,0x03,0x03,0x00                 //.
                        ,0x1B,0x1B,0x00                 //:
                        ,0x60,0x90,0x90,0x60,0x00       //'
                        ,0x09,0x09,0x09,0x09,0x09,0X00  //=
                        ,0x08,0x08,0x08,0x08,0X08,0x00  //-
                        ,0x01,0x01,0x01,0x01,0X01,0x00  //_
                        ,0x04,0x04,0x1f,0x04,0x04,0x00  //+
                        ,0x60,0x92,0x94,0x68,0x16,0x29  //%
                        ,0x49,0x06,0x00                 //%
                        ,0x11,0x0f,0x11,0x10,0x08,0x00  //r
                        ,0x08,0x08,0x08,0x2a,0x1c,0x08,0x00  //>
                        ,0x1c,0x22,0x41,0x59,0x49,0x2a,0x1c,0x00//*
                        ,0x03,0x0c,0x30,0xc0,0x00};     ///  



void data_sec()
   {
   switch (data)
   {
   case 'A':
   adres_sec=0 ; yinele=5 ; break ;
   case 'B':
   adres_sec=6 ; yinele=5 ; break;
   case 'C':
   adres_sec=12 ; yinele=5 ; break;
   case 'D':
   adres_sec=18 ; yinele=5 ; break;
   case 'E':
   adres_sec=24 ; yinele=5 ; break;
   case 'F':
   adres_sec=30 ; yinele=5 ; break;
   case 'G':
   adres_sec=36 ; yinele=5 ; break;
   case 'H':
   adres_sec=42 ; yinele=5 ; break;
   case 'I':
   adres_sec=48 ; yinele=3 ; break;
   case 'İ':
   adres_sec=52 ; yinele=3 ; break;
   case 'J':
   adres_sec=56 ; yinele=5 ; break;
   case 'K':
   adres_sec=62 ; yinele=5 ; break;
   case 'L':
   adres_sec=68 ; yinele=5 ; break;
   case 'M':
   adres_sec=74 ; yinele=5 ; break;
   case 'N':
   adres_sec=80 ; yinele=5 ; break;
   case 'O':
   adres_sec=86 ; yinele=5 ; break;
   case 'P':
   adres_sec=92 ; yinele=5 ; break;
   case 'Q':
   adres_sec=98 ; yinele=5 ; break;
   case 'R':
   adres_sec=104 ; yinele=5 ; break;
   case 'S':
   adres_sec=110 ; yinele=5 ; break;
   case 'T':
   adres_sec=116 ; yinele=5 ; break;
   case 'U':
   adres_sec=122 ; yinele=5 ; break;
   case 'Ü':
   adres_sec=128 ; yinele=5 ; break;
   case 'V':
   adres_sec=134 ; yinele=5 ; break;
   case 'W':
   adres_sec=140 ; yinele=5 ; break;
   case 'X':
   adres_sec=146 ; yinele=5 ; break;
   case 'Y':
   adres_sec=152 ; yinele=5 ; break;
   case 'Z':
   adres_sec=158 ; yinele=5 ; break;
   case ' ':
   adres_sec=164 ; yinele=5 ; break;
   case '0':
   adres_sec=170 ; yinele=5 ; break;
   case '1':
   adres_sec=176 ; yinele=3 ; break;
   case '2':
   adres_sec=180 ; yinele=5 ; break;
   case '3':
   adres_sec=186 ; yinele=5 ; break;
   case '4':
   adres_sec=192 ; yinele=5 ; break;
   case '5':
   adres_sec=198 ; yinele=5 ; break;
   case '6':
   adres_sec=204 ; yinele=5 ; break;
   case '7':
   adres_sec=210 ; yinele=5 ; break;
   case '8':
   adres_sec=216 ; yinele=5 ; break;
   case '9':
   adres_sec=222 ; yinele=5 ; break;
   case 'Ö':
   adres_sec=228 ; yinele=5 ; break;
   case '.':
   adres_sec=234 ; yinele=2 ; break;
   case ':':
   adres_sec=237 ; yinele=2 ; break;
   case '`':
   adres_sec=240 ; yinele=4 ; break;
   case '=':
   adres_sec=245 ; yinele=5 ; break;
   case '-':
   adres_sec=251 ; yinele=5 ; break;
   case '_':
   adres_sec=257 ; yinele=5 ; break;
   case '+':
   adres_sec=263 ; yinele=5 ; break;
   case '%':
   adres_sec=269 ; yinele=8 ; break;
   case 'r':
   adres_sec=278 ; yinele=5 ; break;
   case '>':
   adres_sec=284 ; yinele=6 ; break;
   case '*':
   adres_sec=291 ; yinele=7 ; break;
   case '/':
   adres_sec=299 ; yinele=4 ; break;
   default:
   adres_sec=164 ; yinele=5 ;
   break;
   }
   }


tekrar teşekkürler sram i tercih etmedim pahalı 48t08 için 15$ bir fiyat aldım.

XX_CİHAN_XX

Kayan yazı için Sram bence aşırı derecede lükse kaçar  :)
Seri eepromlarla bile güzel kayan yazılar yapmak mümkün.
Yüksek hafızalarada gerek yok esasında pratik olarak düşünürsek hiçkimsenin bir kayan yazıya sayfalarca yazı aktardığına şahit olmadım.
(Yüksek hafızadan kastım 24c512(64KB) gibidir)

Bu yorumlarım sadece text tabanlı kayan yazılara yöneliktir.
Grafik, animasyon vb. özellikleri olmayan sadece yazı kaydıracak ve bu yazıları bir dizi animasyondan geçirebilecek türden klasik kayan yazılar içindir.
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.

yufuk

Eğer hafıza gerekiyorsa mmc yada sd kart bu işler için artık vazgeçilmez bence. Hem hafızayı istediğin an değiştirebilirsin, hemde son derece ucuzlamış olan 1GB kartlar yeteri kadar hafıza sağlayacağını düşünüyorum. Üstelik yapacağın sistemle mmc kartın üzerinden PIC kendi kendine güncel versiyon yükleyebilir...

serdararikan

24 serisinden bir seri flash kullnabilirsin.her byte 1 karakter anlamına gelir.tabiki bunun için bir karakter tablosu oluşturman lazım.SAbit uzunluktamı yoksa değişken uzunluktamı karakter yapacaksın bunu belirleyip buna göre bir program algoritması geliştirmelisin.Bir arkadaşımızında dediği gibi bence RAM veya FLASH kulanıp kullanmamak çok önemli değil.önemli olan başka donanımsal problemlerin olacaktır.mesela parlaklık sorunu! sürücü devre problemleri gibi..devreye ekleyeceğin her animasyon olayı biraz daha karıştıracak.o zaman göreceksin ki RAM veya FLASH olayı çok basit bir problem...

berkay_yalan

arkadaşlar parlaklıkla ilgili problemim yok hiç kullanmadığımı söylüyorum hafıza problem değil diyorsunuz zaten amac hafıza benim sorunum eeprom nasıl kullanılır. Bununla ilgili kaynak şema ve örnek size yapın demiyorum elinizde varsa bununla ilgili döküman yüklerseniz sevinirim.
basic kullanıyorum az çok programlama bilgim var basicde hangi kodları kullanacağımı biliyorum eprom okuma ve yazma kodları yanlız eeprom icine nasıl bir program girecek nasıl programlanacak vs yukarıda verdiğim kodlar mı girecek onlar girecekse basına bir kod eklemek

serdararikan

Anladığın kadarıyla sen devre yapmışsın sadece daha fazla karakter yazak için uygun bir hafıza kullanmak istiyorsun öylemi?

berkay_yalan

Alıntı yapılan: "serdararikan"Anladığın kadarıyla sen devre yapmışsın sadece daha fazla karakter yazak için uygun bir hafıza kullanmak istiyorsun öylemi?
evet

XX_CİHAN_XX

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.