Eeproma kaydedilen logoları GLCD de slayt şeklinde gösterme

Muqo

Üye
Katılım
27 Aralık 2020
Mesajlar
14
WhatsApp Image 2020-12-02 at 15.02.44.jpeg
arkadaşlar yardımcı olursanız çok sevinirim ben bunun baya bi tık altını yapabildim anca
 
Proje baya kapsamlı. Şimdiye kadar bununla ilgili neler yaptın? İşlemci seçtin mi? Blok diyagram falan hazırladın mı?
 
C:
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=20000000)

#include "HDM64.c"

unsigned int32 sayac;

#include <graphics.c>

unsigned int i,j, k;

const int logo[] =
{
   0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,22,251,255,255,255,255,255,191,191,63,63,63,63,159,158,254,252,240,240,96,64,96,96,128,128,192,
   192,96,96,48,48,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,0,1,65,0,12,31,31,7,7,1,17,0,0,225,243,252,254,254,255,255,255,254,254,251,251,225,225,128,
   128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,3,6,6,12,12,24,24,56,112,224,224,224,96,96,112,112,48,48,56,62,127,255,255,255,255,15,15,1,1,3,3,15,15,127,127,127,
   127,126,126,252,252,252,252,152,152,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,7,7,96,112,1,131,6,14,28,56,112,96,0,0,0,0,0,1,3,7,15,31,114,240,228,224,192,192,128,128,0,
   0,0,0,1,1,3,3,7,7,3,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,254,252,248,240,240,224,16,0,32,32,0,64,64,0,128,128,0,0,8,0,33,1,3,3,131,
   131,134,134,14,14,12,76,4,4,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,64,99,99,127,127,63,63,31,31,0,0,0,0,0,0,1,1,7,6,126,126,254,254,248,248,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,3,3,3,3,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
};

void muqo()
{
   int x=0;
   int y=0;

   for(i=0;i<64;i+=8)
   {
      for(j=0;j<128;j++)
      {
         for(k=0;k<8;k++)
         {
            if(bit_test(logo[sayac],k))
            {
               glcd_pixel(x+j,y+i+k,ON);
            }
         }

         sayac++;
      }
   }
}

void main()
{
   glcd_init(on);
   delay_ms(100);
   muqo();
}

hocam glcd resim kodu oluşturma programıyla seçtiğim resimlerin kodlarını sırayla yapıştırıp glcd de gösterebildim sadece
 

Ekler

  • Ekran Görüntüsü (130).png
    Ekran Görüntüsü (130).png
    215.2 KB · Görüntüleme: 134
Last edited by a moderator:
Bir program eklerken aşağıda görüldüğü gibi menüden "Code" seç ve sonra da kodu yapıştırdıktan sonra kodun türünü (C veya C++ veya neyse) seç.

1609075307228.png


1609075636427.png


Yani resmi ekranda gösterme işi, butonları falan okuma işi tamam, tek takıldığın yer resim bilgilerini EEPROM'a yazma ve oradan okuma mıdır?
 
Bir program eklerken aşağıda görüldüğü gibi menüden "Code" seç ve sonra da kodu yapıştırdıktan sonra kodun türünü (C veya C++ veya neyse) seç.

6824 eklentisine bak

6825 eklentisine bak

Yani resmi ekranda gösterme işi, butonları falan okuma işi tamam, tek takıldığın yer resim bilgilerini EEPROM'a yazma ve oradan okuma
ozur dilerim bilmiyodum kod anlasilir olmadiysa dediginiz gibi tekrar atabilirim
 
Bitmap saklayacak kadar yeri olan EEPROM'lar genelde SPI arabirimi kullanıyor. Öncelikle SPI konusunda araştırma yap, soru sor.

Eğer elinde EEPROM programlayıcı varsa, EEPROM'u dışarıda programlayıp o şekilde devreye bağlayabilirsin. Muhtemelen okulda programlayıcı vardır o yüzden EEPROM'u programlama konusunda şimdilik gönüllü olma :) Ödevde de zaten bunu şart koşmuyor. Hazır programlanmış, belli formatta verileri içeren bir EEPROM olduğunu varsayarak ilerle.

Kullanacağın EEPROM boyutunu ve çip modelini belirledikten sonra buraya yaz, datasheet'ini de ekle.
 
25AA1024 kullanıcam boyutu 1024
 

Ekler

  • eeprom.pdf
    485.3 KB · Görüntüleme: 143
bu konuda çok fazla bilgimin olmamasının sebebi hocamızın bu konuları hiç işlemeden bu ödevi vermesi ve araştırmayla yeterince bilgi bulamamam zaten sanırım hoca bu projeyi satıcak veya kendi tezine koyucak :)
 
bu konuda çok fazla bilgimin olmamasının sebebi hocamızın bu konuları hiç işlemeden bu ödevi vermesi ve araştırmayla yeterince bilgi bulamamam zaten sanırım hoca bu projeyi satıcak veya kendi tezine koyucak :)

Valla ben 25 senedir bu işlerin içindeyim ve her yaptığım projede ya yeni bir programlama dili, yeni bir teknoloji veya yeni bir işletim sistemi ile çalışmak durumunda kaldım. Sen de inşallah meslek hayatına atıldığında durum çok farklı olmayacak. Önemli olan herşeyi öğrenmek değil, bilmediğin şeylerin ne olduğunu, ve onları nasıl öğreneceğini bilmek.

EEPROM seçimin güzel. CCS'de hazır SPI kütüphanesi var, onunla EEPROM'a erişmeyi deneyebilirsin. SPI bus'ta ne olup bittiğini anlamak için de aşağıdaki gibi bir protokol analizörü alıp kullanabilirsin. Buradaki "saleae logic analyzer" diye geçiyor.


Ama dikkat et, bunlar yüksek saat hızları için uygun değildir. Senin seçtiğim EEPROM 20 MHz'e kadar saat hızlarını desteklediği halde sen 1 MHz'i geçme. Bir kere bu lojik analizör ile herşeyin düzgün çalıştığını gördükten sonra saat hızını yükseltebilirsin.
 
Aslında okulda protokol çözümlemesi yapan dijital osiloskoplar da vardır. Hangi marka/model osiloskoplar var laboratuvarda? Onları da kullanabilirsin, çok daha iyi sonuç verir.
 
okul bu tür şeyler için izin vermiyo şuanlık zaten ödev sadece proteus ortamında yapmak üzerine kurulu.Verdiğiniz bilgiler ve yardımlarınız için teşekküre ediyorum ve mümkünse yardımcı,yol gösterici bi kod paylaşma imkanınız varmı acaba ?
 
Temel eprom mantığı şöyle işler,

Epromun kapasitesi kadar eprom adresi olur.
Ve her adreste 1bayt veri saklanır.

Örn.

Byte veri =xxxx

Write (veri,1);

1 nolu adrese veriyi kaydettik.

Okumak için,

Veri = read (1);

1 nolu adresteki veriyi veri değişkenine aktardık.

Şimdi read, write komutlarının yazım şekli kullandığın ortama göre değişiklik göstermekle beraber temel mantık budur.

Senin verin logo olduğu için hali ile bir byte dan büyük olacak.

Logo dizisindeki her byte ı bir döngü ile değişik bir adrese kaydeceksin.

Önce logo dizisi kaç elemanlı onu bul. Örn. 50 olsun. 1 den 50 kadar bir döngü içinde beliryeceğin bir adres bloğuna veriyi kaydedeceksin. Örneğin 100 nolu adresten itibaren kayda başlayıp 150 nolu adreste işlemi bitireceksin.

Veriyi okukenden 100den başlayıp bir döngü yardımı ile verileri bir dizi içerisine toplayacaksın.

Şurada bir kaynak var;
 
cok tesekkur ederim ama bi sorum olucak.Kullanicagim logonun logo kodu olusturma uygulamasi ile elde ettigim kodumu adres olarak kullanicam yoksa logonun icinde oldugu klasorumu?
Yani adres kismini anlamadim
 
Bende soruyu tam anlamadım. Ben graplcd kullanmadım hiç ama anladığım bir uygulama ile logoyu dizi şeklinde veriye dönüştürüyorsun.


Logo1[]={x,x,x...xx}


Xxx verileri programdan geldi.

Bunu epromda 100 adrsindem itibaren kaydettin.

Logo2 yi 500 den itibaren kaydettin.

Haa şimdi anladım adresi sen belirleyeceksin.

Örneğin 24c256 da 256 adet adres olur. Her adres 1 byte kapasitelidir.

2 adet logo olduğunu düşünelim.

1den 128 kadar olan adresleri 1. Loogo için, 128den 256 (255) e kadar olan adresleri 2. Logo için reserve ediceksin. Bu bir örnek.

1. Logonun hangi adres aralığında saklandığını biliyorsun. 1den 128e kadar okuyacaksın. Diziye aktaracaksın. 2. Logo için 128den itibaren okuyacaksın.

Bu adresleme olayını logolarının kaç bayt olduğu, eprom kaç bayt olduğuna göre kendin belirleyeceksin. İster hafıza adrslerini logo sayısına böl. İstersen logolar 100byte ı geçmiyorsa. 100,200 gibi 100bytlık adresleri kullan...
 
Yani proje tamamen Proteus'da simulasyon düzeyinde mi bitirilecek? :facepalm1:

Eğer böyle ise gerçekten hiç katılmadığım bir uygulama. Bir kere öğrenciler gerçek hardware'i tanımamış oluyor. Onun dışında öğrencilerin hiç birisinde Proteus alacak para olmadığına göre öğretmen resmen KORSAN yazılım kullanımını teşvik ediyor. Böyle bir şeyden elde edilen bilginin bereketinin olmayacağını düşünüyorum.
 
logolarımın boyutu 128x64 ve 1.086 bayt ve 16 tane var.Kullandığım eepromun boyutu 1024 byte.1024/16 dan her 64 bytea bi logomu kaydetmem lazım
 
Yani proje tamamen Proteus'da simulasyon düzeyinde mi bitirilecek? :facepalm1:

Eğer böyle ise gerçekten hiç katılmadığım bir uygulama. Bir kere öğrenciler gerçek hardware'i tanımamış oluyor. Onun dışında öğrencilerin hiç birisinde Proteus alacak para olmadığına göre öğretmen resmen KORSAN yazılım kullanımını teşvik ediyor. Böyle bir şeyden elde edilen bilginin bereketinin olmayacağını düşünüyorum.
evet crack indirdik zaten proteusu.Zaten hocanın amacıda sizin dediğinizle uyuşuyo.Kendi ağzıyla dedi uzaktan eğitimde sizi geçirmek istemiyorum diye o yüzden bu kadar zorluyo.Seneye bidaha alınca eğer pandemi biterse zaten gerçek hardwareyi tanıtmak isticek bizlere :)
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
5,845
Mesajlar
99,715
Üyeler
2,481
Son üye
rfdog12

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top