atmega328p ile ssd1327 128x128 oled kullanımı

Başlatan tunahanfıtlamak, 02 Nisan 2020, 02:22:19

tunahanfıtlamak

merhabalar
atmega328p ile ssd1327 128x128 oled ekranı kullanıyorum
ekranı direnç.net ten sipariş ettim ve orada olan dökümanlardaki kütüphaneyi kullanıyorum
başarılı bir şekilde ekranı kullanabiliyorum

fakat bir kaç büyük sorunum var
1. sorunum ekranda 64x64 lük bitmap formatına çevrilmiş resimi gösteremiyorum.
yaptığım araştırmalara göre kütüphanede olan bu fonksiyonu buldum
 void OLED_DisPage(unsigned int Column_Numunsigned int Page_Num)
{
  
unsigned int column_max = (OLED_WIDTH XByte);//OLED_WIDTH=128 , XByte=64
  
unsigned int page_max = (OLED_HEIGHT YByte);// OLED_HEIGHT=128 , YByte=16
  
if (Page_Num page_max || Column_Num column_max) {
    
DEBUG("Display error\r\n");
    return;
  }
  
unsigned int Dx Column_Num column_max;
  
unsigned int Dy Page_Num page_max;
  
OLED_Display(Dx XByteDy YByte, (Dx 1) * XByte,(Dy 1) * YByte);
//OLED_Display(POINT Xstart, POINT Ystart, POINT Xend, POINT Yend)
}

bu fonksiyonu kullandığımda oled_display de çıkan sonuçlarda mesela OLED_DisPage(0,1) yazdığımda fonksiyon içinde OLED_Display(0,16,64,32); oluyor buda benim y eksenin 16 ile sınırlıyor fonsiyon içindeki kodda bunu daha yüksek rakam yapmaya çalıştım fakat olmadı y eksenin 16 karakterlik sınırlama koyduğu için 32x32 vb resimleri gösteremiyorum.
bu ekranı daha önce kullanan var mı bu problemi nasıl çözebilirim.

2.sorunum ekran kütüphanesindeki global değişkenler atmega328p nin %82 lik kısmını kapılıyor bu da benim diğer işlemleri yapmama engel oluyor bir kaç birşey tanımladığımda %90 lara çıkıyor buda işlemcinin karasız çalışmasına sebeb oluyor atmega328p nin hafızasını mı genişletmeliyim yada kütüphanedeki gereksiz fonsiyonlar mı kaplıyor kütüphaneye baktım fakat anlayamadım.
kütüphaneyi link halinde atıyorum bir kaç gündür uğraşıyorum ve çözüm bulmadım
şimdiden teşekkür ederim herkese iyi çalışmalar.
https://www.waveshare.com/wiki/File:1.5inch_OLED_Moudle.7z

mehmet

1) GUI_Disbitmap(0  2Signal816  168);2) Derleyici iyileştirmesini boyut olarak
değiştirmeniz yararlı olabilir.

tunahanfıtlamak

Alıntı yapılan: mehmet - 02 Nisan 2020, 04:11:121) GUI_Disbitmap(0  2Signal816  168);2) Derleyici iyileştirmesini boyut olarak
değiştirmeniz yararlı olabilir.
1) GUI_Disbitmap(0  2Signal816  168); hocam bu kod çalışıyor fakat benim
GUI_Disbitmap(0  2örnek resim3232);  32x32 boyutunda bir resim göstermem gerekiyor ve ben gösteremiyorum yukarıdaki söylediğim dis_page fonkiyonu yüzünden.

tunahanfıtlamak

Alıntı yapılan: mehmet - 02 Nisan 2020, 04:11:121) GUI_Disbitmap(0  2Signal816  168);2) Derleyici iyileştirmesini boyut olarak
değiştirmeniz yararlı olabilir.

2) Derleyici iyileştirmesini boyut olarak
değiştirmeniz yararlı olabilir.
bunu nasıl yapabilirim hocam araştırdım ama bulamadım.

Endorfin35+

Duz mantik bir onerim olsun. 2 adet 328 kullanarak birbiri ile haberlestirin. Biri ekrani sursun digeride diger isleri yapsin...
"İşi bilen yapar, az bilen akıl verir, bilmeyen eleştirir, yapamayan çamur atar."

tunahanfıtlamak

Alıntı yapılan: Endorfin35+ - 02 Nisan 2020, 15:33:26Duz mantik bir onerim olsun. 2 adet 328 kullanarak birbiri ile haberlestirin. Biri ekrani sursun digeride diger isleri yapsin...
öneriniz için teşşekür ederim hocam fakat devrem küçük 2 adet atmega328p sığmaz maalesef.

Kabil ATICI

Arduino MKR1000 işlemcisi olan SAMD21 Cortex-M0 kullanmanı önerebilirim, 256k flash,32k RAM.
Not: internette uygulamalar arasında bu işlemce ve oled ekran ile yapılmış kol saati de bulunmaktadır.
ambar7

mehmet

Derleyici olarak ne kullandığınız
belli değil.

tunahanfıtlamak

Alıntı yapılan: mehmet - 02 Nisan 2020, 21:42:20Derleyici olarak ne kullandığınız
belli değil.
derleyicim arduino ide si hocam

tunahanfıtlamak

Alıntı yapılan: Kabil ATICI - 02 Nisan 2020, 18:05:22Arduino MKR1000 işlemcisi olan SAMD21 Cortex-M0 kullanmanı önerebilirim, 256k flash,32k RAM.
Not: internette uygulamalar arasında bu işlemce ve oled ekran ile yapılmış kol saati de bulunmaktadır.
teşşekür ederim hocam inceleyeceğim

volkanunal

Merhabalar Arduino Ide'si default olarak, program boyutunu düşürmek ile ilgili optimizasyon parametresi açık olarak gelmekte.


Şu şekilde 5 farklı hız / boyut konusunda optimizasyon parametreleri var

https://gcc.gnu.org/onlinedocs/gnat_ugn/Optimization-Levels.html

Arduino arayüzü şunu kullanmakta -> -Os

Bunlar nerede derseniz, şu dizine gidin.

C:\Program Files (x86)\Arduino\hardware\arduino\avr

ve platform.txt dosyasını açın.

compiler.c.flags=---Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects
ve

compiler.cpp.flags=---Os {compiler.warning_flags} -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto

bu kısımlar gördüğünüz -Os komut satırı argümanını almakta.


Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.