Ребят всем привет , заказал такой китайский экранчик , но никак не могу подобрать шрифт для него , работает только с одним шрифтом 12*16 все остальные показывают крокозяблы , но 12*16 мне большой нужен мельче , перерыл кучу информации и кучу шрифтов , ничего не получается . У всех как будто работает со всеми шрифтами , у меня же ни в какую. Подскажите в чем может быть проблемма , может экран какойто новый с новыми адресами или может библиотека под него какая то другая или шрифты.
Шрифт для SSD1306 0.91
Сообщений 1 страница 11 из 11
Поделиться22025-05-20 08:15:21
Дайте код, который работает.
И код, который не работает.
И фото своего дисплея, с двух сторон.
Отредактировано Александр Д. (2025-05-20 08:15:48)
Поделиться32025-05-20 08:46:41
Код с примера
$regfile = "m328pbdef.dat"
$hwstack = 32
$swstack = 32
$framesize = 32
$crystal = 16000000Config Scl = Portc.5 ' used i2c pins
Config Sda = Portc.4
Config Twi = 400000 ' i2c speedI2cinit
$lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
$lib "glcdSSD1306-I2C.lib" ' override the default lib with this special oneConfig Graphlcd = Custom , Cols = 128 , Rows = 32, Lcdname = "SSD1306"
Cls
Setfont Font_6x8 ' select fontLcdat 1 , 1 , "MCS avr"
Waitms 3000End
$include "font_6x8.font"
С шрифтом 12*16 работает 


, с другими ни с какими не работает.
Поделиться42025-05-20 13:33:54
разные: 6*8, 8*8, 12*16, 25*32
Ссылка для скачивания: https://transfiles.ru/bx6b0
Поделиться52025-05-20 14:03:33
разные: 6*8, 8*8, 12*16, 25*32
Ссылка для скачивания: https://transfiles.ru/bx6b0
Спасибюо Александр , Ваш код работает , я понял почему, у вас есть донастройка экрана все дело в ней .
I2cstart
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &HDA 'Enable COM Left/Right remap
I2cwbyte &H22
I2cstop
Поделиться62025-05-20 16:09:13
Пожалуйста. Я уж и не помню, откуда всё это. Столько лет прошло. Может тут нашел, может еще где-то...
Поделиться72025-05-20 20:24:14
Очень интересно почему этого нет в примере на сайте.
Поделиться82025-05-21 11:45:16
А о каком сайте идёт речь?
Поделиться92025-05-21 19:42:13
Сайте баском Ссылка
Поделиться102025-05-22 09:25:20
Кто знает, может у него была другая библиотека, где эта инициализация встроена по умолчанию?
Открываю библиотеку glcdSSD1306-I2C.lib (размер 15.7KB), в самом начале вижу:
; slave address, CO|DC|ctrl, data
;CO-continuation bit, if 0 next data will be normal data
;ctrl-if 0, data is a command, if 1 data is normal data stored in GDRAM
_lcd_init_data:
.db &H78, &HAE ; DISPLAYOFF
.db &HD5, &H80 ; SETDISPLAYCLOCKDIV , ratio 0x80
.db &H00, &H3F ; SETMULTIPLEX , 1f 128x32
.db &HD3, &H00 ; SETDISPLAYOFFSET , 00
.db &H40, &H8D ; SETSTARTLINE , CHARGEPUMP
.db &H14, &H20 ; vccstate 14 , MEMORYMODE
.DB &H00, &HA1 ; A0 upside down SEGREMAP
.db &HC8, &HDA ; COMSCANDEC , SETCOMPINS
.db &H12, &H81 ; 02 128x32 12 , SETCONTRAST
.db &HFF, &HD9 ; constrast value 255, SETPRECHARGE,
.db &HF1, &HD8 ; vccstate f1 , SETVCOMDETECT
.db &H40, &HA4 ; &H40 , DISPLAYALLON_RESUME
.db &HA6, &HAF ; NORMALDISPLAY
но "моих" команд тут я не вижу.
Отредактировано Александр Д. (2025-05-22 09:25:55)
Поделиться112025-05-22 12:19:12
Работал без библиотек. Не доверяю "библиотекарям".
Код:Sub_oled_reset: I2cstart I2cwbyte &H78 I2cwbyte &H40 For Look_indx = 0 To 1023 I2cwbyte 0 Next Look_indx I2cstop Return Sub_oled_init: I2cstart I2cwbyte &H78 I2cwbyte &HAE 'LED OFF I2cwbyte &HD5 'SETDISPLAYCLOCKDIV I2cwbyte &H80 'ratio 0x80 I2cwbyte &H00 'SETMULTIPLEX I2cwbyte &H3F ' 1f 128x32 I2cwbyte &HD3 'SETDISPLAYOFFSET I2cwbyte &H00 I2cwbyte &H40 'SETSTARTLINE I2cwbyte &H8D 'CHARGEPUMP I2cwbyte &H14 'vccstate 14 I2cwbyte &H20 'MEMORYMODE I2cwbyte &H00 ' I2cwbyte &HA1 'A0 upside down SEGREMAP I2cwbyte &HC8 'COMSCANDEC I2cwbyte &HDA 'SETCOMPINS I2cwbyte &H12 ' 02 128x32 12 I2cwbyte &H81 'SETCONTRAST I2cwbyte Contrast I2cwbyte &HD9 'SETPRECHARGE I2cwbyte &HF1 'vccstate f1 I2cwbyte &HDB 'SETVCOMDETECT I2cwbyte &H40 I2cwbyte &HA4 'DISPLAYALLON_RESUME I2cwbyte &HA6 'NORMALDISPLAY I2cwbyte &HAF 'LED ON I2cstop Return