Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Шрифт для SSD1306 0.91


Шрифт для SSD1306 0.91

Сообщений 1 страница 11 из 11

1

Ребят всем привет , заказал такой китайский экранчик , но никак не могу подобрать шрифт для него , работает только с одним шрифтом 12*16 все остальные показывают крокозяблы , но 12*16 мне большой нужен мельче , перерыл кучу информации и кучу шрифтов , ничего не получается . У всех как будто работает со всеми шрифтами , у меня же ни в какую. Подскажите в чем может быть проблемма , может экран какойто новый с новыми адресами или может библиотека под него какая то другая или шрифты.

0

2

Дайте код, который работает.
И код, который не работает.
И фото своего дисплея, с двух сторон.

Отредактировано Александр Д. (2025-05-20 08:15:48)

0

3

Код с примера

с баскома

$regfile = "m328pbdef.dat"
$hwstack = 32
$swstack = 32
$framesize = 32
$crystal = 16000000

Config Scl = Portc.5                                       ' used i2c pins
Config Sda = Portc.4
Config Twi = 400000                                         ' i2c speed

I2cinit
$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 one

Config Graphlcd = Custom , Cols = 128 , Rows = 32, Lcdname = "SSD1306"
Cls
Setfont Font_6x8                                           ' select font

Lcdat 1 , 1 , "MCS avr"
Waitms 3000

End

$include "font_6x8.font" 

С шрифтом 12*16 работает
https://upforme.ru/uploads/0000/25/b8/1052/t625648.jpg
https://upforme.ru/uploads/0000/25/b8/1052/t296744.jpg
https://upforme.ru/uploads/0000/25/b8/1052/t722400.jpg
, с другими ни с какими не работает.

0

4

разные: 6*8, 8*8, 12*16, 25*32
Ссылка для скачивания: https://transfiles.ru/bx6b0

0

5

Александр Д. написал(а):

разные: 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

0

6

Пожалуйста. Я уж и не помню, откуда всё это. Столько лет прошло. Может тут нашел, может еще где-то...

0

7

Очень интересно почему этого нет  в примере на сайте.

0

8

А о каком сайте идёт речь?

0

9

Сайте баском Ссылка

0

10

Кто знает, может у него была другая библиотека, где эта инициализация встроена по умолчанию?
Открываю библиотеку 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)

0

11

Работал без библиотек. Не доверяю "библиотекарям".

код
Код:
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

0


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Шрифт для SSD1306 0.91