vfd driver+avr
vfd driver+avr
Holló!
szeretnék segitséget kérni.
van egy kijelzöm a dvd-m előlapjából rajta van a vezérjö ic is,tettem fel róla képeket és az ic adatlapját.
ide:
Link
légszi aki ért ahoz hogy hogy lehet ezekkel kommunikálni az segitsen nekem:)
GND:....
5V:....
STB: erre kell neki 5V amikor bekapcsol a cucc
CLK: gondolom az orajel
DATA: nah ez az érdekes... milyen protokolon komunikálhat? AVR el hogy lehetne össze hozni?
REM: ir vevő kimeneti láb..
azt szeretném csak megtudni hogy lehet vele komunikálni?
köszi
szeretnék segitséget kérni.
van egy kijelzöm a dvd-m előlapjából rajta van a vezérjö ic is,tettem fel róla képeket és az ic adatlapját.
ide:
Link
légszi aki ért ahoz hogy hogy lehet ezekkel kommunikálni az segitsen nekem:)
GND:....
5V:....
STB: erre kell neki 5V amikor bekapcsol a cucc
CLK: gondolom az orajel
DATA: nah ez az érdekes... milyen protokolon komunikálhat? AVR el hogy lehetne össze hozni?
REM: ir vevő kimeneti láb..
azt szeretném csak megtudni hogy lehet vele komunikálni?
köszi
ez ugyanaz mint az én 74xx595 icm
ott a dokuban:
Pin desc.
no 6
Din : soros adat felfutó élre alacsony bit az első
aztán a function desc-ben ott van a leírás mit vár a dolog
bascomban nézd át a shiftout részt
ezzel a parancsal meg lehet oldani a dolgot
(egy cipőben járunk csak én 74hc595 re akarok most irni egy
multipexer programot)
csak a te icd még kapcsoló mátrixot is kezel(het)
ott a dokuban:
Pin desc.
no 6
Din : soros adat felfutó élre alacsony bit az első
aztán a function desc-ben ott van a leírás mit vár a dolog
bascomban nézd át a shiftout részt
ezzel a parancsal meg lehet oldani a dolgot
(egy cipőben járunk csak én 74hc595 re akarok most irni egy
multipexer programot)
csak a te icd még kapcsoló mátrixot is kezel(het)
Elso korben probaltam mintaprogit keresni C ASM vagy Bascomul.
Reménytelen....
A DataIn/Data Out az nem más, mint a SPI busz kisse lebutitva. A
Clockjellel szinkroban kuldod/fogadod a biteket.
A CLK/STB/DataIn/Out labakra 10 k felhuzo kell a 5Vra!
kimenet eseten:
STB, CLK, DATA as output
set STB
set CLK
reset DATA
waitms 100
reset STB
waitms 10
for i = 0 to 7
reset clk
waitms 1
if dataout.i=0 then reset DATA else set DATA
waitms 1
set clk
waitms 1
next i
waitms 1
itt jon a kovetkezo parancs:)
az utasitassorrend sorrendje a 10. oldal alja.
Utasitasok az 5. oldaon vannak.
Eloszor sztem csak kuldjel, hogy a szegmenseket ki tudd gyujtogatni.
Visszaolvasni pl. gombokat raersz tana...
Ez a 8. oldal alapjan a orajeles leiras.
Az idozitessel (1msec) lehet jatszani kell.
Itt kimeneti adatok vannak, a dataout valtozo tartalmazza a kiirando
adatot.
Meg lehet vele kuzdeni, de az adatlap alapjan nem olyan veszes....
Reménytelen....
A DataIn/Data Out az nem más, mint a SPI busz kisse lebutitva. A
Clockjellel szinkroban kuldod/fogadod a biteket.
A CLK/STB/DataIn/Out labakra 10 k felhuzo kell a 5Vra!
kimenet eseten:
STB, CLK, DATA as output
set STB
set CLK
reset DATA
waitms 100
reset STB
waitms 10
for i = 0 to 7
reset clk
waitms 1
if dataout.i=0 then reset DATA else set DATA
waitms 1
set clk
waitms 1
next i
waitms 1
itt jon a kovetkezo parancs:)
az utasitassorrend sorrendje a 10. oldal alja.
Utasitasok az 5. oldaon vannak.
Eloszor sztem csak kuldjel, hogy a szegmenseket ki tudd gyujtogatni.
Visszaolvasni pl. gombokat raersz tana...
Ez a 8. oldal alapjan a orajeles leiras.
Az idozitessel (1msec) lehet jatszani kell.
Itt kimeneti adatok vannak, a dataout valtozo tartalmazza a kiirando
adatot.
Meg lehet vele kuzdeni, de az adatlap alapjan nem olyan veszes....
Re: vfd driver+avr
Építettem egy VFD kijelző áramkört, nincs benne speciális meghajtó IC mindössze egy mega8515, és TD62783 tápoldali meghajtó, a kijelző 14+2 szegmenses 12 rácsos.
A 40 lábból nem is maradt csak 4 szabadon.
Soros kijelzőként használom majdnem működik is csak a karakterek között több mint 20ms idő kell hogy ne tévesszen az "&" jelet választottam a sor elejére lépésnek. A soros jelet megszakítással kapom el a megszakításban is keveset tartózkodom, szerintem viszont azért ilyen lassú mert a karakter helyének kiszámolásakor mikor bejött egy byte, le kell futni a két select case résznek és csak akkor jöhet a következő adat, itt a kód nem tudom hogy lehetne úgy megoldani hogy a karakterek között ne vagy minimális max.1ms késleltetés legyen, egy internet rádiót készítek (mellesleg sd kártyáról meg később USB-ről is játszik MP3 fájlt) amiben nem megengedhető ekkora késleltetés. Először LCD kijelzőt használtam azzal jó is volt de a "retrósítás" miatt tértem át a VFD kijelzőre.
A 40 lábból nem is maradt csak 4 szabadon.
Soros kijelzőként használom majdnem működik is csak a karakterek között több mint 20ms idő kell hogy ne tévesszen az "&" jelet választottam a sor elejére lépésnek. A soros jelet megszakítással kapom el a megszakításban is keveset tartózkodom, szerintem viszont azért ilyen lassú mert a karakter helyének kiszámolásakor mikor bejött egy byte, le kell futni a két select case résznek és csak akkor jöhet a következő adat, itt a kód nem tudom hogy lehetne úgy megoldani hogy a karakterek között ne vagy minimális max.1ms késleltetés legyen, egy internet rádiót készítek (mellesleg sd kártyáról meg később USB-ről is játszik MP3 fájlt) amiben nem megengedhető ekkora késleltetés. Először LCD kijelzőt használtam azzal jó is volt de a "retrósítás" miatt tértem át a VFD kijelzőre.
Kód: Egész kijelölése
$regfile = "m8515.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 8
$framesize = 24
$baud = 38400
On Urxc Rx
'G1 D7
'G2 D6
'G3 D5
'G4 D4
'G5 B7
'G6 B6
'G7 B5
'G8 B4
'G9 B3
'G10 B2
'G11 B1
'G12 B0
'a A0
'b A1
'c A2
'd A3
'e A4
'f A5
'g A6
'h A7
'i C7
'j C6
'k C5
'l C4
'm C3
'n C2
'o C1
'p CO
Config Portb = Output
Config Porta = Output
Config Portc = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Dim T As Byte
Dim Gxa As Byte , Gxb As Byte
Dim G1a As Byte , G1b As Byte
Dim G2a As Byte , G2b As Byte
Dim G3a As Byte , G3b As Byte
Dim G4a As Byte , G4b As Byte
Dim G5a As Byte , G5b As Byte
Dim G6a As Byte , G6b As Byte
Dim G7a As Byte , G7b As Byte
Dim G8a As Byte , G8b As Byte
Dim G9a As Byte , G9b As Byte
Dim G10a As Byte , G10b As Byte
Dim G11a As Byte , G11b As Byte
Dim G12a As Byte , G12b As Byte
Dim R As Byte , C As Byte
Dim Rec As Bit
Dim I As Byte
Rec = 0
G1a = 0 : G1b = 0
G2a = 0 : G2b = 0
G3a = 0 : G3b = 0 '0
G4a = 0 : G4b = 0 '1
G5a = 0 : G5b = 0 '2
G6a = 0 : G6b = 0 '3
G7a = 0 : G7b = 0 '4
G8a = 0 : G8b = 0 '5
G9a = 0 : G9b = 0 '6
G10a = 0 : G10b = 0 '7
G11a = 0 : G11b = 0 '8
G12a = 0 : G12b = 0 '9
Waitms 500
Print "OK"
Enable Urxc
Enable Interrupts
Do
Set Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = 0
Porta = G1a
Portc = G1b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
'*******************************************************************************
Reset Portd.7
Set Portd.6
Reset Portd.5
Reset Portd.4
Portb = 0
Porta = G2a
Portc = G2b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Set Portd.5
Reset Portd.4
Portb = 0
Porta = G3a
Portc = G3b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Set Portd.4
Portb = 0
Porta = G4a
Portc = G4b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B10000000
Porta = G5a
Portc = G5b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B01000000
Porta = G6a
Portc = G6b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00100000
Porta = G7a
Portc = G7b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00010000
Porta = G8a
Portc = G8b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00001000
Porta = G9a
Portc = G9b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00000100
Porta = G10a
Portc = G10b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00000010
Porta = G11a
Portc = G11b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00000001
Porta = G12a
Portc = G12b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00000000
For I = 0 To 100
Waitus 10
Next
If Rec = 1 Then
Rec = 0
Select Case R
Case "0":
Gxa = 39 : Gxb = 141 '0
Case "1":
Gxa = 06 : Gxb = 128 '1
Case "2":
Gxa = 195 : Gxb = 5 '2
Case "3":
Gxa = 67 : Gxb = 129 '3
Case "4":
Gxa = 226 : Gxb = 128 '4
Case "5":
Gxa = 225 : Gxb = 129 '5
Case "6":
Gxa = 225 : Gxb = 133 '6
Case "7":
Gxa = 3 : Gxb = 128 '7
Case "8":
Gxa = 227 : Gxb = 133 '8
Case "9":
Gxa = 227 : Gxb = 129 '9
Case "A":
Gxa = 227 : Gxb = 134 'A
Case "B":
Gxa = 75 : Gxb = 145 'B
Case "C":
Gxa = 33 : Gxb = 5 'C
Case "D":
Gxa = 11 : Gxb = 145 'D
Case "E":
Gxa = 161 : Gxb = 5 'E
Case "F":
Gxa = 161 : Gxb = 4 'F
Case "G":
Gxa = 97 : Gxb = 133 'G
Case "H":
Gxa = 224 : Gxb = 132 'H
Case "I":
Gxa = 9 : Gxb = 17 'I
Case "J":
Gxa = 2 : Gxb = 133 'J
Case "K":
Gxa = 228 : Gxb = 36 'K
Case "L":
Gxa = 32 : Gxb = 5 'L
Case "M":
Gxa = 54 : Gxb = 132 'M
Case "N":
Gxa = 50 : Gxb = 164 'N
Case "O":
Gxa = 35 : Gxb = 133 'O
Case "P":
Gxa = 227 : Gxb = 4 'P
Case "Q":
Gxa = 35 : Gxb = 165 'Q
Case "R":
Gxa = 227 : Gxb = 36 'R
Case "S":
Gxa = 225 : Gxb = 129 'S
Case "T":
Gxa = 9 : Gxb = 16 'T
Case "U":
Gxa = 34 : Gxb = 133 'U
Case "V":
Gxa = 36 : Gxb = 12 'V
Case "W":
Gxa = 34 : Gxb = 172 'W
Case "X":
Gxa = 20 : Gxb = 40 'X
Case "Y":
Gxa = 226 : Gxb = 16 'Y
Case "Z":
Gxa = 5 : Gxb = 9 'Z
Case "-":
Gxa = 192 : Gxb = 0 '-
Case " ":
Gxa = 0 : Gxb = 0 '
Case ":":
Gxa = 0 : Gxb = 66 ':
Case ".":
Gxa = 0 : Gxb = 2 '.
'bargraph:
Case "a":
Gxa = &B00000000 : Gxb = &B00000001
Case "b":
Gxa = &B00000100 : Gxb = &B00000001
Case "c":
Gxa = &B00001100 : Gxb = &B00000001
Case "d":
Gxa = &B00011100 : Gxb = &B00000001
Case "e":
Gxa = &B00111100 : Gxb = &B00000001
Case "f":
Gxa = &B01111100 : Gxb = &B00000001
Case "g":
Gxa = &B11111100 : Gxb = &B00000001
Case "h":
Gxa = &B11111100 : Gxb = &B10000001
Case "i":
Gxa = &B11111100 : Gxb = &B11000001
Case "j":
Gxa = &B11111100 : Gxb = &B11100001
Case "k":
Gxa = &B11111100 : Gxb = &B11110001
Case "l":
Gxa = &B11111100 : Gxb = &B11111001
Case "m":
Gxa = &B11111100 : Gxb = &B11111101
Case "n":
Gxa = &B11111100 : Gxb = &B11111111
Case "o":
Gxa = &B00000001 : Gxb = &B00000001
Case "p":
Gxa = &B00000010 : Gxb = &B00000001
Case "q":
Gxa = &B00000011 : Gxb = &B00000001
Case "r":
Gxa = &B00010000 : Gxb = &B00000000 'pause
Case "s":
Gxa = &B00100000 : Gxb = &B00000000 'play
Case "t":
Gxa = &B00000010 : Gxb = &B00000000 'usb
Case "u":
Gxa = &B00010010 : Gxb = &B00000000
Case "v":
Gxa = &B00100010 : Gxb = &B00000000
End Select
Select Case C
Case 1:
G1a = Gxa : G1b = Gxb ':
Case 2:
G2a = Gxa : G2b = Gxb
Case 3:
G3a = Gxa : G3b = Gxb
Case 4:
G4a = Gxa : G4b = Gxb
Case 5:
G5a = Gxa : G5b = Gxb
Case 6:
G6a = Gxa : G6b = Gxb
Case 7:
G7a = Gxa : G7b = Gxb
Case 8:
G8a = Gxa : G8b = Gxb
Case 9:
G9a = Gxa : G9b = Gxb
Case 10:
G10a = Gxa : G10b = Gxb
Case 11:
G11a = Gxa : G11b = Gxb
Case 12:
G12a = Gxa : G12b = Gxb
End Select
End If
Loop
End
Rx:
R = Inkey()
Rec = 1
Incr C
If R = "&" Then C = 0
'If C > 12 Then C = 0
Return
Re: vfd driver+avr
Mi lenne, ha Beraknád 1 tőmbe a Gxa, Gxb-be kerülő értékeket.
Mivel „Select Case R” –nél R-ben ASCII érték van?
Rt = (R – 32) * 2 a tömbmutató értéke.
Innentől már csak Gxa = Gxtomb(Rt), Gxb = Gxtomb(Rt+1)

Mivel „Select Case R” –nél R-ben ASCII érték van?
Rt = (R – 32) * 2 a tömbmutató értéke.
Innentől már csak Gxa = Gxtomb(Rt), Gxb = Gxtomb(Rt+1)
Re: vfd driver+avr
Sikerült, pont mikor írtad akkor jutott nekem is eszembe hogy így kell, még kell késleltetés a bájtok között, most 1ms de lehet kevesebb is.
Felteszem ide hátha valaki akar vfd kijelzőt használni, bár ezen is van még mit tökéletesíteni. Mind a 12 karaktert felül kell írni meg +1 a startjel.
Felteszem ide hátha valaki akar vfd kijelzőt használni, bár ezen is van még mit tökéletesíteni. Mind a 12 karaktert felül kell írni meg +1 a startjel.
Kód: Egész kijelölése
$regfile = "m8515.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 8
$framesize = 24
$baud = 38400
On Urxc Rxint
'G1 D7
'G2 D6
'G3 D5
'G4 D4
'G5 B7
'G6 B6
'G7 B5
'G8 B4
'G9 B3
'G10 B2
'G11 B1
'G12 B0
'a A0
'b A1
'c A2
'd A3
'e A4
'f A5
'g A6
'h A7
'i C7
'j C6
'k C5
'l C4
'm C3
'n C2
'o C1
'p CO
Config Portb = Output
Config Porta = Output
Config Portc = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Dim T As Byte
Dim Gxa As Byte , Gxb As Byte
Dim G1a As Byte , G1b As Byte
Dim G2a As Byte , G2b As Byte
Dim G3a As Byte , G3b As Byte
Dim G4a As Byte , G4b As Byte
Dim G5a As Byte , G5b As Byte
Dim G6a As Byte , G6b As Byte
Dim G7a As Byte , G7b As Byte
Dim G8a As Byte , G8b As Byte
Dim G9a As Byte , G9b As Byte
Dim G10a As Byte , G10b As Byte
Dim G11a As Byte , G11b As Byte
Dim G12a As Byte , G12b As Byte
'Dim R As Byte
Dim C As Byte
Dim Rx(15) As Byte
Dim Rec As Bit
Dim I As Byte
Dim J As Byte
Rec = 0
G1a = 0 : G1b = 0
G2a = 0 : G2b = 0
G3a = 192 : G3b = 0 '0
G4a = 192 : G4b = 0 '1
G5a = 192 : G5b = 0 '2
G6a = 192 : G6b = 0 '3
G7a = 192 : G7b = 0 '4
G8a = 192 : G8b = 0 '5
G9a = 192 : G9b = 0 '6
G10a = 192 : G10b = 0 '7
G11a = 192 : G11b = 0 '8
G12a = 192 : G12b = 0 '9
Waitms 500
Print "OK"
Enable Urxc
Enable Interrupts
Do
Set Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = 0
Porta = G1a
Portc = G1b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
'*******************************************************************************
Reset Portd.7
Set Portd.6
Reset Portd.5
Reset Portd.4
Portb = 0
Porta = G2a
Portc = G2b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Set Portd.5
Reset Portd.4
Portb = 0
Porta = G3a
Portc = G3b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Set Portd.4
Portb = 0
Porta = G4a
Portc = G4b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B10000000
Porta = G5a
Portc = G5b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B01000000
Porta = G6a
Portc = G6b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00100000
Porta = G7a
Portc = G7b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00010000
Porta = G8a
Portc = G8b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00001000
Porta = G9a
Portc = G9b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00000100
Porta = G10a
Portc = G10b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00000010
Porta = G11a
Portc = G11b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
For I = 0 To 10
Waitus 10
Next
'*******************************************************************************
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00000001
Porta = G12a
Portc = G12b
For I = 0 To 100
Waitus 10
Next
Porta = 0
Portc = 0
Reset Portd.7
Reset Portd.6
Reset Portd.5
Reset Portd.4
Portb = &B00000000
For I = 0 To 100
Waitus 10
Next
If C = 12 Then
'Rec = 0
For J = 1 To 12
Select Case Rx(j)
Case "0":
Gxa = 39 : Gxb = 141 '0
Case "1":
Gxa = 06 : Gxb = 128 '1
Case "2":
Gxa = 195 : Gxb = 5 '2
Case "3":
Gxa = 67 : Gxb = 129 '3
Case "4":
Gxa = 226 : Gxb = 128 '4
Case "5":
Gxa = 225 : Gxb = 129 '5
Case "6":
Gxa = 225 : Gxb = 133 '6
Case "7":
Gxa = 3 : Gxb = 128 '7
Case "8":
Gxa = 227 : Gxb = 133 '8
Case "9":
Gxa = 227 : Gxb = 129 '9
Case "A":
Gxa = 227 : Gxb = 134 'A
Case "B":
Gxa = 75 : Gxb = 145 'B
Case "C":
Gxa = 33 : Gxb = 5 'C
Case "D":
Gxa = 11 : Gxb = 145 'D
Case "E":
Gxa = 161 : Gxb = 5 'E
Case "F":
Gxa = 161 : Gxb = 4 'F
Case "G":
Gxa = 97 : Gxb = 133 'G
Case "H":
Gxa = 224 : Gxb = 132 'H
Case "I":
Gxa = 9 : Gxb = 17 'I
Case "J":
Gxa = 2 : Gxb = 133 'J
Case "K":
Gxa = 228 : Gxb = 36 'K
Case "L":
Gxa = 32 : Gxb = 5 'L
Case "M":
Gxa = 54 : Gxb = 132 'M
Case "N":
Gxa = 50 : Gxb = 164 'N
Case "O":
Gxa = 35 : Gxb = 133 'O
Case "P":
Gxa = 227 : Gxb = 4 'P
Case "Q":
Gxa = 35 : Gxb = 165 'Q
Case "R":
Gxa = 227 : Gxb = 36 'R
Case "S":
Gxa = 225 : Gxb = 129 'S
Case "T":
Gxa = 9 : Gxb = 16 'T
Case "U":
Gxa = 34 : Gxb = 133 'U
Case "V":
Gxa = 36 : Gxb = 12 'V
Case "W":
Gxa = 34 : Gxb = 172 'W
Case "X":
Gxa = 20 : Gxb = 40 'X
Case "Y":
Gxa = 226 : Gxb = 16 'Y
Case "Z":
Gxa = 5 : Gxb = 9 'Z
Case "-":
Gxa = 192 : Gxb = 0 '-
Case " ":
Gxa = 0 : Gxb = 0 '
Case ":":
Gxa = 0 : Gxb = 66 ':
Case ".":
Gxa = 0 : Gxb = 2 '.
'bargraph:
Case "a":
Gxa = &B00000000 : Gxb = &B00000001
Case "b":
Gxa = &B00000100 : Gxb = &B00000001
Case "c":
Gxa = &B00001100 : Gxb = &B00000001
Case "d":
Gxa = &B00011100 : Gxb = &B00000001
Case "e":
Gxa = &B00111100 : Gxb = &B00000001
Case "f":
Gxa = &B01111100 : Gxb = &B00000001
Case "g":
Gxa = &B11111100 : Gxb = &B00000001
Case "h":
Gxa = &B11111100 : Gxb = &B10000001
Case "i":
Gxa = &B11111100 : Gxb = &B11000001
Case "j":
Gxa = &B11111100 : Gxb = &B11100001
Case "k":
Gxa = &B11111100 : Gxb = &B11110001
Case "l":
Gxa = &B11111100 : Gxb = &B11111001
Case "m":
Gxa = &B11111100 : Gxb = &B11111101
Case "n":
Gxa = &B11111100 : Gxb = &B11111111
Case "o":
Gxa = &B00000001 : Gxb = &B00000001
Case "p":
Gxa = &B00000010 : Gxb = &B00000001
Case "q":
Gxa = &B00000011 : Gxb = &B00000001
Case "r":
Gxa = &B00010000 : Gxb = &B00000000 'pause
Case "s":
Gxa = &B00100000 : Gxb = &B00000000 'play
Case "t":
Gxa = &B00000010 : Gxb = &B00000000 'usb
Case "u":
Gxa = &B00010010 : Gxb = &B00000000
Case "v":
Gxa = &B00100010 : Gxb = &B00000000
End Select
Select Case J
Case 1:
G1a = Gxa : G1b = Gxb ':
Case 2:
G2a = Gxa : G2b = Gxb
Case 3:
G3a = Gxa : G3b = Gxb
Case 4:
G4a = Gxa : G4b = Gxb
Case 5:
G5a = Gxa : G5b = Gxb
Case 6:
G6a = Gxa : G6b = Gxb
Case 7:
G7a = Gxa : G7b = Gxb
Case 8:
G8a = Gxa : G8b = Gxb
Case 9:
G9a = Gxa : G9b = Gxb
Case 10:
G10a = Gxa : G10b = Gxb
Case 11:
G11a = Gxa : G11b = Gxb
Case 12:
G12a = Gxa : G12b = Gxb
'If C > 12 Then C = 0
End Select
Next J
End If
Loop
End
Rxint:
'Rec = 1
Incr C
Rx(c) = Inkey()
If Rx(c) = "&" Then C = 0
Return
Re: vfd driver+avr
Nem így gondolta!
A Select Case Rx(j) szerkezet helyet tömb címszámítást alkalmaznék.
Mivel ezek ASCII értékek. http://ascii.atw.hu/
Érvényes írásjelek a 32 -125 értékeken vannak.
’Karakter tömbök létrehozása
Dim TGxA(125-32) As Byte 'byte range from 0-255
Dim TGxB(125-32) As Byte 'byte range from 0-255
’Tömbök feltöltése ASCII tábla sorrendben. (az első -32 értéket elhagyjuk)
TGxA(48-32)= 39 , TGxB(48-32) = 141 ’0 (ASCII = 48)
TGxA(49-32)= 6 , TGxB(49-32) = 128 ’1 (ASCII = 49)
…
…
’Értékadás (Számok ASCII 48-tól):
For J = 48-32 To 48-32+10
Gxa = TGxA(j) : Gxb = TGxB(j)
...
next
’Értékadás (Betük ASCII A 65-tól):
For J = 65-32 To 65-32+26
Gxa = TGxA(j) : Gxb = TGxB(j)
...
next
Még ehhez vannak függvények a Bascomban:
var = ASC(string)
s = CHR(var)
Egyszerűbb és jóval gyorsabb, mint a Case szerkezet.

A Select Case Rx(j) szerkezet helyet tömb címszámítást alkalmaznék.
Mivel ezek ASCII értékek. http://ascii.atw.hu/
Érvényes írásjelek a 32 -125 értékeken vannak.
’Karakter tömbök létrehozása
Dim TGxA(125-32) As Byte 'byte range from 0-255
Dim TGxB(125-32) As Byte 'byte range from 0-255
’Tömbök feltöltése ASCII tábla sorrendben. (az első -32 értéket elhagyjuk)
TGxA(48-32)= 39 , TGxB(48-32) = 141 ’0 (ASCII = 48)
TGxA(49-32)= 6 , TGxB(49-32) = 128 ’1 (ASCII = 49)
…
…
’Értékadás (Számok ASCII 48-tól):
For J = 48-32 To 48-32+10
Gxa = TGxA(j) : Gxb = TGxB(j)
...
next
’Értékadás (Betük ASCII A 65-tól):
For J = 65-32 To 65-32+26
Gxa = TGxA(j) : Gxb = TGxB(j)
...
next
Még ehhez vannak függvények a Bascomban:
var = ASC(string)
s = CHR(var)
Egyszerűbb és jóval gyorsabb, mint a Case szerkezet.
