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
1) GUI_Disbitmap(0 , 2, Signal816 , 16, 8);
2) Derleyici iyileştirmesini boyut olarak
değiştirmeniz yararlı olabilir.
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.
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.
Duz mantik bir onerim olsun. 2 adet 328 kullanarak birbiri ile haberlestirin. Biri ekrani sursun digeride diger isleri yapsin...
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.
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.
Derleyici olarak ne kullandığınız
belli değil.
Alıntı yapılan: mehmet - 02 Nisan 2020, 18:42:20Derleyici olarak ne kullandığınız
belli değil.
derleyicim arduino ide si hocam
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
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.