128x32 OLED String Basma Problemi

Başlatan baran123, 22 Ocak 2018, 04:07:59

baran123

128x32 için bir library toparladım. Fakat bir problem var.

Genelde örnekler bir buffer oluşturup buffer üzerinde değişiklik yaptıktan sonra ekranı yenileyerek yapılmış.
Bende bu şekilde devam ettim.
Fonksiyona Mesaj, x, y şeklinde değer giriyorum fakat x parametresi doğru çalışmasına rağmen y parametresi doğru çalışmıyor.
(Bu fonksiyonları internetten buldum)


void OLED_WriteCharTest
(uint8_t cuint8_t xuint8_t y)
{
    
uint8_t i;
    
uint16_t table_offset = (32)*5;
    
uint16_t offset y*16 x;

    for(
05i++) 
        
oled_buffer[i+offset] = Font_5x7[i+table_offset];
    
    
OLED_WriteBuffer(oled_buffer);
}

void OLED_WriteStringTest(uint8_t *suint8_t xuint8_t y)
{
    
uint8_t _x x;
    
    while(*
s)
    {
        
OLED_WriteCharTest(*s++, _xy);
        
_x += 7// 5 olması gerek fakat güzel gözüksün diye 7 yapıldı
    
}
}


Örnek

OLED_WriteStringTest
("BARAN"00);
OLED_WriteStringTest("EKREM"010);


Çıktı;


Y değerini 0 dan farklı yaptığımda mesaj sağa doğru kayıyor. Sebebi ne olabilir ?

baran123

Ne hikmetse saniyeler içinde sorun çözüldü.  :D


void OLED_WriteCharTest
(uint8_t cuint8_t xuint8_t y)
{
    
uint8_t i;
    
uint8_t _y 8// bunu unutmamak lazım.
    
uint16_t table_offset = (32)*5;
    
uint16_t offset = (_y)*16 x;

    for(
05i++) 
        
oled_buffer[i+offset] = Font_5x7[i+table_offset];
    
    
OLED_WriteBuffer(oled_buffer);
}

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.