Hallo zusammen,
ich habe 2 Fragen zur Programmierung der kleinen Displays.
Ich setze das 0,91" Display mit I2C Bus mit 128X32 Zeichen ein.
Es soll max eine 4stellige Zahl dargestellt werden. Diese Zahl soll natürlich das ganze Display füllen.
Leider bekomme ich beim Font von 8x8 nur einen Bruchteil der Zahl dargestellt.
Auch bei einem anderen Font klappt es nicht.
Wo liegt hier mein Fehler?
Ich setze das Programm Creativ Font-Studio for Bascom zur Erstellung der Fontdatei ein.
Zur Reduzierung des Speicherbedarfes habe ich nur die Zahlen von 0-9 in eine eigene Fotdatei übernommen.
Binde ich diese Datei ( Zahlen.font ) mit in mein Projekt ein, werden die Zahlen auch nicht größer und werden auch nicht dargestellt.
Kann man die Font-Datei auf das wesentliche begrenzen oder was muss ich besonderes dabei beachten?
Danke im Voraus
Grüße
Thomas
Hier mein Test Programm:
'-------------------------------------------------------------------------------
' OLED.bas
'-------------------------------------------------------------------------------
$regfile = "m328pdef.dat"
$crystal = 16000000
$baud = 19200
Config Clockdiv = 1
$swstack = 32
$framesize = 32
Config Scl = Portc.0
Config Sda = Portc.1
Config Twi = 400000
Waitms 200
I2cinit
$lib "i2c_twi.lbx"
$lib "glcdSSD1306-I2C.lib"
Config Graphlcd = Custom , Cols = 128 , Rows = 32 , Lcdname = "SSD1306"
Cls
Setfont Font8x8
'Setfont Zahlen
Lcdat 4 , 2 , "444"
End
$include "font8x8.font"
'$include "Zahlen.font"
Und hier meie Font Datei Zahlen:
Zahlen:
$asm
.db 2 , 10 , 20 , 0
.db 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ;
.db 0 , 240 , 24 , 8 , 24 , 240 , 0 , 0 , 0 , 0 , 0 , 15 , 24 , 16 , 24 , 15 , 0 , 0 , 0 , 0 ; 0
.db 0 , 0 , 32 , 48 , 248 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 31 , 0 , 0 , 0 , 0 , 0 ; 1
.db 0 , 48 , 8 , 8 , 8 , 240 , 0 , 0 , 0 , 0 , 16 , 24 , 20 , 18 , 17 , 16 , 0 , 0 , 0 , 0 ; 2
.db 0 , 16 , 8 , 136 , 136 , 112 , 0 , 0 , 0 , 0 , 0 , 8 , 16 , 16 , 16 , 15 , 0 , 0 , 0 , 0 ; 3
.db 0 , 0 , 64 , 48 , 248 , 0 , 0 , 0 , 0 , 0 , 6 , 5 , 4 , 4 , 31 , 4 , 0 , 0 , 0 , 0 ; 4
.db 0 , 224 , 152 , 136 , 136 , 8 , 0 , 0 , 0 , 0 , 0 , 9 , 16 , 16 , 16 , 15 , 0 , 0 , 0 , 0 ; 5
.db 0 , 240 , 152 , 136 , 136 , 16 , 0 , 0 , 0 , 0 , 0 , 15 , 16 , 16 , 16 , 15 , 0 , 0 , 0 , 0 ; 6
.db 0 , 8 , 8 , 136 , 104 , 24 , 0 , 0 , 0 , 0 , 0 , 0 , 28 , 3 , 0 , 0 , 0 , 0 , 0 , 0 ; 7
.db 0 , 112 , 136 , 136 , 136 , 112 , 0 , 0 , 0 , 0 , 0 , 15 , 16 , 16 , 16 , 15 , 0 , 0 , 0 , 0 ; 8
.db 0 , 240 , 8 , 8 , 8 , 240 , 0 , 0 , 0 , 0 , 0 , 8 , 17 , 17 , 25 , 15 , 0 , 0 , 0 , 0 ; 9
$end Asm
ich habe 2 Fragen zur Programmierung der kleinen Displays.
Ich setze das 0,91" Display mit I2C Bus mit 128X32 Zeichen ein.
Es soll max eine 4stellige Zahl dargestellt werden. Diese Zahl soll natürlich das ganze Display füllen.
Leider bekomme ich beim Font von 8x8 nur einen Bruchteil der Zahl dargestellt.
Auch bei einem anderen Font klappt es nicht.
Wo liegt hier mein Fehler?
Ich setze das Programm Creativ Font-Studio for Bascom zur Erstellung der Fontdatei ein.
Zur Reduzierung des Speicherbedarfes habe ich nur die Zahlen von 0-9 in eine eigene Fotdatei übernommen.
Binde ich diese Datei ( Zahlen.font ) mit in mein Projekt ein, werden die Zahlen auch nicht größer und werden auch nicht dargestellt.
Kann man die Font-Datei auf das wesentliche begrenzen oder was muss ich besonderes dabei beachten?
Danke im Voraus
Grüße
Thomas
Hier mein Test Programm:
'-------------------------------------------------------------------------------
' OLED.bas
'-------------------------------------------------------------------------------
$regfile = "m328pdef.dat"
$crystal = 16000000
$baud = 19200
Config Clockdiv = 1
$swstack = 32
$framesize = 32
Config Scl = Portc.0
Config Sda = Portc.1
Config Twi = 400000
Waitms 200
I2cinit
$lib "i2c_twi.lbx"
$lib "glcdSSD1306-I2C.lib"
Config Graphlcd = Custom , Cols = 128 , Rows = 32 , Lcdname = "SSD1306"
Cls
Setfont Font8x8
'Setfont Zahlen
Lcdat 4 , 2 , "444"
End
$include "font8x8.font"
'$include "Zahlen.font"
Und hier meie Font Datei Zahlen:
Zahlen:
$asm
.db 2 , 10 , 20 , 0
.db 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ;
.db 0 , 240 , 24 , 8 , 24 , 240 , 0 , 0 , 0 , 0 , 0 , 15 , 24 , 16 , 24 , 15 , 0 , 0 , 0 , 0 ; 0
.db 0 , 0 , 32 , 48 , 248 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 31 , 0 , 0 , 0 , 0 , 0 ; 1
.db 0 , 48 , 8 , 8 , 8 , 240 , 0 , 0 , 0 , 0 , 16 , 24 , 20 , 18 , 17 , 16 , 0 , 0 , 0 , 0 ; 2
.db 0 , 16 , 8 , 136 , 136 , 112 , 0 , 0 , 0 , 0 , 0 , 8 , 16 , 16 , 16 , 15 , 0 , 0 , 0 , 0 ; 3
.db 0 , 0 , 64 , 48 , 248 , 0 , 0 , 0 , 0 , 0 , 6 , 5 , 4 , 4 , 31 , 4 , 0 , 0 , 0 , 0 ; 4
.db 0 , 224 , 152 , 136 , 136 , 8 , 0 , 0 , 0 , 0 , 0 , 9 , 16 , 16 , 16 , 15 , 0 , 0 , 0 , 0 ; 5
.db 0 , 240 , 152 , 136 , 136 , 16 , 0 , 0 , 0 , 0 , 0 , 15 , 16 , 16 , 16 , 15 , 0 , 0 , 0 , 0 ; 6
.db 0 , 8 , 8 , 136 , 104 , 24 , 0 , 0 , 0 , 0 , 0 , 0 , 28 , 3 , 0 , 0 , 0 , 0 , 0 , 0 ; 7
.db 0 , 112 , 136 , 136 , 136 , 112 , 0 , 0 , 0 , 0 , 0 , 15 , 16 , 16 , 16 , 15 , 0 , 0 , 0 , 0 ; 8
.db 0 , 240 , 8 , 8 , 8 , 240 , 0 , 0 , 0 , 0 , 0 , 8 , 17 , 17 , 25 , 15 , 0 , 0 , 0 , 0 ; 9
$end Asm