Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Atmel => Konuyu başlatan: tunahanfıtlamak - 01 Nisan 2020, 23:22:19

Başlık: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: tunahanfıtlamak - 01 Nisan 2020, 23:22:19
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
(https://i.ibb.co/5vwrc55/men-2.jpg) (https://ibb.co/5vwrc55)
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_Num, unsigned 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 * XByte, Dy * 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
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: mehmet - 02 Nisan 2020, 01:11:12
1) GUI_Disbitmap(0  , 2, Signal816  , 16, 8);2) Derleyici iyileştirmesini boyut olarak
değiştirmeniz yararlı olabilir.
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: tunahanfıtlamak - 02 Nisan 2020, 12:02:43
Alıntı yapılan: mehmet - 02 Nisan 2020, 01:11:121) GUI_Disbitmap(0  , 2, Signal816  , 16, 8);2) Derleyici iyileştirmesini boyut olarak
değiştirmeniz yararlı olabilir.
1) GUI_Disbitmap(0  , 2, Signal816  , 16, 8); hocam bu kod çalışıyor fakat benim
GUI_Disbitmap(0  , 2, örnek resim, 32, 32);  32x32 boyutunda bir resim göstermem gerekiyor ve ben gösteremiyorum yukarıdaki söylediğim dis_page fonkiyonu yüzünden.
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: tunahanfıtlamak - 02 Nisan 2020, 12:13:17
Alıntı yapılan: mehmet - 02 Nisan 2020, 01:11:121) GUI_Disbitmap(0  , 2, Signal816  , 16, 8);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.
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: Endorfin35+ - 02 Nisan 2020, 12:33:26
Duz mantik bir onerim olsun. 2 adet 328 kullanarak birbiri ile haberlestirin. Biri ekrani sursun digeride diger isleri yapsin...
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: tunahanfıtlamak - 02 Nisan 2020, 12:42:57
Alıntı yapılan: Endorfin35+ - 02 Nisan 2020, 12: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.
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: Kabil ATICI - 02 Nisan 2020, 15:05:22
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.
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: mehmet - 02 Nisan 2020, 18:42:20
Derleyici olarak ne kullandığınız
belli değil.
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: tunahanfıtlamak - 02 Nisan 2020, 18:56:36
Alıntı yapılan: mehmet - 02 Nisan 2020, 18:42:20Derleyici olarak ne kullandığınız
belli değil.
derleyicim arduino ide si hocam
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: tunahanfıtlamak - 02 Nisan 2020, 18:57:01
Alıntı yapılan: Kabil ATICI - 02 Nisan 2020, 15: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
Başlık: Ynt: atmega328p ile ssd1327 128x128 oled kullanımı
Gönderen: volkanunal - 02 Nisan 2020, 22:12:00
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=-c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects
ve

compiler.cpp.flags=-c -g -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.