BASCOM-hodnota z ADC-převod na LCD-NOKIA3310

Zdravim
Mam definovanou sadu znaků a potřebuji hodnotu z ADC zobrazit na LCD od Nokie3310. Klasické zobrazení textu není problém ale jak na ten převod? Má někdo zkušenost jak to udělat?
Moc díky za odpovědi.
ujosvec

Máš na mysli vlastní převod z AD převodníku a nebo převod výstupu z AD převodníku na text zobrazitelný na displeji? Předpokládám, že s vlastním zobrazením číslic na displeji problém nemáš.

no zobrazení mam v ASCI znacích 5x7 celou abecedu i čísla ale jak z toho ADC hodnotu vytáhnout z tý ASCI tabulky to je pro mně problém. Jinak už jsem schopen vypisovat na displej cokoli i obrázek mam to na programátoru takže když tam něco nasypu hned vidím co to dělá a nedělá

Na displej posíláš string$ či sérii ascii znaků? Možná ti napoví, jak jsem řešil svůj pokus s AD a displejem s řadičem hd44780.
AD prevodnik.bas (1.37 KB)

S lcd 2x16 a podobné s žadičem HD44… zkušenosti mam. Tenhle displej je 48x82 bodů a má úplně jiné ovládání. Tam se musí definovat ASCI znaková sada a s tou pak pracovat. Řídí se to bud SPI-HW nebo Softvérově. SPI-HW jsem rozchodil. Nějaké výsledky už mám. Mohu psát nebo poslat obrázek no problém. Ale číselnou hodnotu z ADC nějak převést a dostak z ASCI sady mi stále uniká :frowning:
img685.imageshack.us/img685/8430/1006421r.jpg

:arrow_right: administrator: příspěvek byl upraven

:arrow_right: administrator: přiloženy externí soubory
1006421r.jpg

Ahoj.
Pokud jsem to pochopil potrebujes tedy integer hodnotu 0322 prevest na string “0322”. K tomu se pouziva funkce STR priklad pouziti zde mp222.wz.cz/Bascom/Soubory/bascom_instr.htm

Tohle používám na 33 řádku “Voltmetru” 8)

Voltx = Str(v)

Ukaž kompletní kód.

Tak at jsem zkoušel jak jsem zkoušel tak se mi to nedaří dostat z ADC hodnotu do funkce print. Tak pls o rady. Takto jak je program tak vypíse vše jak jsem poslal foto.

[code]$regfile = “m8def.dat”
$crystal = 4000000
$hwstack = 32 ’ default
$swstack = 8 ’ default
$framesize = 54 'minimum for this library. Increase for your application needs!

Dim Strstring As String * 14 'Just used for this demo

'Define I/O and name them
Config Portb.1 = Output
D3410dc Alias Portb.1
Config Portb.0 = Output
D3410ce Alias Portb.0
Config Portb.2 = Output
D3410re Alias Portb.2

'Configure SPI in mode
Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4
'Initialise Spi
Spiinit

'$include “3410init.bas”
Declare Sub D3410reset
Declare Sub D3410init
Declare Sub D3410clear
Declare Sub D3410commandout(byval D3410value As Byte)
Declare Sub D3410dataout(byval D3410value As Byte)
Declare Sub D3410print(byval D3410string As String)
Declare Sub D3410position(byval D3410x As Byte , Byval D3410y As Byte)
Dim D3410quotation As String * 1
D3410quotation = Chr(34)

'ADC config
Defint A 'Adc0,Adc1,Adc2,Adc3,Adc4,Adc5
Config Portc = &B00000000
Config Adc = Single , Prescaler = Auto

'Initialise the display
Call D3410reset
Call D3410init
Call D3410clear

Call D3410position(0 , 0)
Call D3410print( “CELL-1=”)
Call D3410position(0 , 1)
Call D3410print( “CELL-2=”)
Call D3410position(0 , 2)
Call D3410print( “CELL-3=”)
Call D3410position(0 , 3)
Call D3410print( “CELL-4=”)
Call D3410position(0 , 4)
Call D3410print( “CELL-5=”)
Call D3410position(0 , 5)
Call D3410print( “CELL-6=”)

Start Adc
'Main program loop
Do

Adc0 = Getadc(0)

Call D3410position(0 , 8 )
Call D3410print( “ujo 0 1234567ab”)
Wait 2
Call D3410clear

Loop

Stop

Sub D3410reset
D3410re = 0
Waitus 250
D3410re = 1
End Sub

Sub D3410init
D3410ce = 0 'Display data input enable
D3410dc = 0 'Command mode
D3410commandout &H21 'Extended command mode, horizontal addressing
D3410commandout &HC8 'Middle contrast
D3410commandout &H06 'Temperature setting
D3410commandout &H13 'Bias 1:48
D3410commandout &H20 'Normal command mode, horizontal addressing
D3410commandout &H0C 'Uninverted Screen
D3410ce = 1 'Display data input disable
End Sub

Sub D3410clear
Local D3410pixelloop As Word 'Loop variable for the pixels
D3410ce = 0 'Display data input enable
D3410dc = 0 'Command mode
D3410commandout &H20 'Normal command mode, horizontal addressing
D3410commandout &H80 'Set RAM X address to 0
D3410commandout &H40 'Set RAM Y address to 0
D3410dc = 1 'Go to data mode
For D3410pixelloop = 0 To 4032 '917 'Send 918 blank pixels
D3410dataout &H00
Next D3410pixelloop
D3410ce = 1 'Display data input disable
End Sub

Sub D3410commandout(byval D3410value As Byte)
D3410ce = 0 'Display data input enable
D3410dc = 0 'Command mode
Spiout D3410value , 1
D3410ce = 1 'Display data input disable
End Sub

Sub D3410dataout(byval D3410value As Byte)
D3410ce = 0 'Display data input enable
D3410dc = 1 'Data mode
Spiout D3410value , 1
D3410ce = 1 'Display data input disable
End Sub

Sub D3410position(byval D3410x As Byte , Byval D3410y As Byte) 'Y is the row (0-6), X is the column (0-15)
Local D3410byte As Byte 'Command or data output
D3410commandout &H20 'Horizontal Addressing
Waitus 250 'Wait for the CE to settle
D3410ce = 0 'Display data input enable
D3410dc = 0 'Command mode
D3410byte = D3410x * &H06 'Send horizontal address
D3410byte = D3410byte + &H80
Spiout D3410byte , 1
D3410byte = D3410y + &H40 'Send vertical address
Spiout D3410byte , 1
D3410ce = 1 'Display data input disable
End Sub

Sub D3410print(byval D3410string As String * 16)
Local D3410length As Byte 'Holds the length of D3410string
Local D3410character As String * 1 'Holds each consecutive character in turn during display output
Local D3410stringloop As Byte 'Loop variable for the string
Local D3410columnloop As Byte 'Loop variable for the columns
Local D3410column As Byte 'Display column output
D3410length = Len(d3410string) 'Establish the number of characters
For D3410stringloop = 1 To D3410length 'Loop through the string
D3410character = Mid(d3410string , D3410stringloop , 1) 'Get the current character

Select Case D3410character ‘Position the pointer to the correct character in the Eeprom and read the first byte
Case “0” : Restore Zero
Case “1” : Restore One
Case “2” : Restore Two
Case “3” : Restore Three
Case “4” : Restore Four
Case “5” : Restore Five
Case “6” : Restore Six
Case “7” : Restore Seven
Case “8” : Restore Eight
Case “9” : Restore Nine
Case “A” : Restore A
Case “B” : Restore B
Case “C” : Restore C
Case “D” : Restore D
Case “E” : Restore E
Case “F” : Restore F
Case “G” : Restore G
Case “H” : Restore H
Case “I” : Restore I
Case “J” : Restore J
Case “K” : Restore K
Case “L” : Restore L
Case “M” : Restore M
Case “N” : Restore N
Case “O” : Restore O
Case “P” : Restore P
Case “Q” : Restore Q
Case “R” : Restore R
Case “S” : Restore S
Case “T” : Restore T
Case “U” : Restore U
Case “V” : Restore V
Case “W” : Restore W
Case “X” : Restore X
Case “Y” : Restore Y
Case “Z” : Restore Z
Case “Ĺ” : Restore Aa
Case “Ä” : Restore Ae
Case “Ö” : Restore Oe
Case “a” : Restore A1
Case “b” : Restore B1
Case “c” : Restore C1
Case “d” : Restore D1
Case “e” : Restore E1
Case “f” : Restore F1
Case “g” : Restore G1
Case “h” : Restore H1
Case “i” : Restore I1
Case “j” : Restore J1
Case “k” : Restore K1
Case “l” : Restore L1
Case “m” : Restore M1
Case “n” : Restore N1
Case “o” : Restore O1
Case “p” : Restore P1
Case “q” : Restore Q1
Case “r” : Restore R1
Case “s” : Restore S1
Case “t” : Restore T1
Case “u” : Restore U1
Case “v” : Restore V1
Case “w” : Restore W1
Case “x” : Restore X1
Case “y” : Restore Y1
Case “z” : Restore Z1
Case “ĺ” : Restore Aa1
Case “ä” : Restore Ae1
Case “ö” : Restore Oe1
Case " " : Restore Spacesign
Case “-” : Restore Dash
Case “.” : Restore Dot
Case “:” : Restore Colon
Case “>” : Restore Arrowright
Case “°” : Restore Degree
Case “@” : Restore Alpha
Case “&” : Restore Ampersand
Case "’" : Restore Apostrophe
Case “<” : Restore Arrowleft
Case “*” : Restore Asterisc
Case “,” : Restore Comma
Case “$” : Restore Dollar
Case “=” : Restore Equals
Case “!” : Restore Exclamation
Case “˝” : Restore Grid
Case “#” : Restore Hash
Case “(” : Restore Leftparagraph
Case “” : Restore Leftsquareparagraph
Case “%” : Restore Percent
Case “+” : Restore Plus
Case “^” : Restore Powerof
Case “?” : Restore Question
Case D3410quotation : Restore Quotation
Case “]” : Restore Rightparagraph
Case “)” : Restore Rightsquareparagraph
Case “;” : Restore Semicolon
Case “/” : Restore Slash
Case “” : Restore Backslash
Case “_” : Restore Underscore

End Select
For D3410columnloop = 1 To 5 'Read and print each column
Read D3410column
Call D3410dataout(d3410column)
Next D3410columnloop
D3410column = 0 'And print a blank column for inter-character spacing
Call D3410dataout(d3410column)
Next D3410stringloop
D3410ce = 1 'Display data input disable
End Sub

'ASCII data
'Digits
Zero:
Data &H3E , &H51 , &H49 , &H45 , &H3E
One:
Data &H00 , &H42 , &H7F , &H40 , &H00
Two:
Data &H42 , &H61 , &H51 , &H49 , &H46
Three:
Data &H22 , &H41 , &H49 , &H49 , &H36
Four:
Data &H18 , &H14 , &H12 , &H7F , &H10
Five:
Data &H27 , &H45 , &H45 , &H45 , &H39
Six:
Data &H3E , &H49 , &H49 , &H49 , &H32
Seven:
Data &H61 , &H11 , &H09 , &H05 , &H03
Eight:
Data &H36 , &H49 , &H49 , &H49 , &H36
Nine:
Data &H26 , &H49 , &H49 , &H49 , &H3E

'Upper-case
A:
Data &H7E , &H09 , &H09 , &H09 , &H7E
B:
Data &H7F , &H49 , &H49 , &H49 , &H36
C:
Data &H3E , &H41 , &H41 , &H41 , &H22
D:
Data &H7F , &H41 , &H41 , &H41 , &H3E
E:
Data &H7F , &H49 , &H49 , &H49 , &H41
F:
Data &H7F , &H09 , &H09 , &H09 , &H01
G:
Data &H3E , &H41 , &H49 , &H49 , &H3A
H:
Data &H7F , &H08 , &H08 , &H08 , &H7F
I:
Data &H00 , &H41 , &H7F , &H41 , &H00
J:
Data &H20 , &H41 , &H41 , &H41 , &H3F
K:
Data &H7F , &H08 , &H14 , &H22 , &H41
L:
Data &H7F , &H40 , &H40 , &H40 , &H40
M:
Data &H7F , &H02 , &H04 , &H02 , &H7F
N:
Data &H7F , &H04 , &H08 , &H10 , &H7F
O:
Data &H3E , &H41 , &H41 , &H41 , &H3E
P:
Data &H7F , &H09 , &H09 , &H09 , &H06
Q:
Data &H3E , &H41 , &H51 , &H61 , &H7E
R:
Data &H7F , &H09 , &H19 , &H29 , &H46
S:
Data &H06 , &H49 , &H49 , &H49 , &H30
T:
Data &H01 , &H01 , &H7F , &H01 , &H01
U:
Data &H3F , &H40 , &H40 , &H40 , &H3F
V:
Data &H1F , &H20 , &H40 , &H20 , &H1F
W:
Data &H7F , &H20 , &H10 , &H20 , &H7F
X:
Data &H63 , &H14 , &H08 , &H14 , &H63
Y:
Data &H03 , &H04 , &H78 , &H04 , &H03
Z:
Data &H61 , &H51 , &H49 , &H45 , &H43
Aa:
Data &H78 , &H14 , &H15 , &H14 , &H78
Ae:
Data &H78 , &H15 , &H14 , &H15 , &H78
Oe:
Data &H38 , &H45 , &H44 , &H45 , &H38

'Lower-case
A1:
Data &H20 , &H54 , &H54 , &H54 , &H78
B1:
Data &H7F , &H48 , &H44 , &H44 , &H38
C1:
Data &H38 , &H44 , &H44 , &H44 , &H28
D1:
Data &H38 , &H44 , &H44 , &H48 , &H7F
E1:
Data &H38 , &H54 , &H54 , &H54 , &H18
F1:
Data &H00 , &H04 , &H7E , &H05 , &H00
G1:
Data &H0C , &H52 , &H52 , &H4A , &H3C
H1:
Data &H7F , &H08 , &H04 , &H04 , &H78
I1:
Data &H00 , &H44 , &H7D , &H40 , &H00
J1:
Data &H00 , &H40 , &H44 , &H3D , &H00
K1:
Data &H7F , &H20 , &H10 , &H28 , &H44
L1:
Data &H00 , &H41 , &H7F , &H40 , &H00
M1:
Data &H7C , &H04 , &H18 , &H04 , &H7C
N1:
Data &H7C , &H08 , &H04 , &H04 , &H78
O1:
Data &H38 , &H44 , &H44 , &H44 , &H38
P1:
Data &H7C , &H14 , &H24 , &H24 , &H18
Q1:
Data &H18 , &H24 , &H24 , &H14 , &H7C
R1:
Data &H7C , &H04 , &H04 , &H08 , &H00
S1:
Data &H08 , &H54 , &H54 , &H54 , &H20
T1:
Data &H04 , &H3F , &H44 , &H40 , &H00
U1:
Data &H3C , &H40 , &H40 , &H40 , &H7C
V1:
Data &H1C , &H20 , &H40 , &H20 , &H1C
W1:
Data &H3C , &H40 , &H30 , &H40 , &H3C
X1:
Data &H44 , &H28 , &H10 , &H28 , &H44
Y1:
Data &H0C , &H50 , &H50 , &H48 , &H3C
Z1:
Data &H44 , &H64 , &H54 , &H4C , &H44
Aa1:
Data &H20 , &H54 , &H55 , &H54 , &H78
Ae1:
Data &H20 , &H55 , &H54 , &H55 , &H78
Oe1:
Data &H38 , &H45 , &H44 , &H45 , &H38

'Special characters
Spacesign:
Data &H00 , &H00 , &H00 , &H00 , &H00
Dot:
Data &H00 , &H60 , &H60 , &H00 , &H00
Dash:
Data &H08 , &H08 , &H08 , &H08 , &H08
Colon:
Data &H00 , &H36 , &H36 , &H00 , &H00
Degree:
Data &H00 , &H07 , &H05 , &H07 , &H00
Leftsquareparagraph:
Data &H00 , &H7F , &H41 , &H41 , &H00
Rightsquareparagraph:
Data &H00 , &H41 , &H41 , &H7F , &H00
Grid:
Data &H55 , &H2A , &H55 , &H2A , &H55
Powerof:
Data &H04 , &H02 , &H01 , &H02 , &H04
Underscore:
Data &H40 , &H40 , &H40 , &H40 , &H40
Semicolon:
Data &H00 , &H56 , &H36 , &H00 , &H00
Arrowleft:
Data &H08 , &H1C , &H36 , &H63 , &H41
Arrowright:
Data &H41 , &H63 , &H36 , &H1C , &H08
Equals:
Data &H14 , &H14 , &H14 , &H14 , &H14
Question:
Data &H02 , &H01 , &H51 , &H09 , &H06
Alpha:
Data &H32 , &H49 , &H59 , &H51 , &H3E
Exclamation:
Data &H00 , &H00 , &H5F , &H00 , &H00
Quotation:
Data &H00 , &H07 , &H00 , &H07 , &H00
Hash:
Data &H14 , &H7F , &H14 , &H7F , &H14
Dollar:
Data &H24 , &H2A , &H7F , &H2A , &H12
Percent:
Data &H23 , &H13 , &H08 , &H64 , &H62
Ampersand:
Data &H36 , &H49 , &H55 , &H22 , &H50
Apostrophe:
Data &H00 , &H05 , &H03 , &H00 , &H00
Leftparagraph:
Data &H00 , &H1C , &H22 , &H41 , &H00
Rightparagraph:
Data &H00 , &H41 , &H22 , &H1C , &H00
Asterisc:
Data &H14 , &H08 , &H3E , &H08 , &H14
Plus:
Data &H08 , &H08 , &H3E , &H08 , &H08
Comma:
Data &H00 , &H00 , &H50 , &H30 , &H00
Slash:
Data &H20 , &H10 , &H08 , &H04 , &H02
Backslash:
Data &H02 , &H04 , &H08 , &H10 , &H20
[/code]
moc díky za nápad

  1. Ty stacky bych udělal pro jistotu větší.
    $hwstack = 128
    $swstack = 64
    $framesize = 128

  2. V ADC máš nastavenou externí referenci.
    Máš připojené referenční napětí k pinu AREF?

  3. Hodnota by se měla zobrazit takto (nemám možnost to vyzkoušet)

[code]'Main program loop
Dim Displej_string As String * 8
Dim Napeti As Long
Dim Uref As Word
Uref = 5000 'Uref = referenční napětí v mV

Do
Adc0 = Getadc(0)
Napeti = Uref * Adc0
Napeti = Napeti / 1024
Displej_string = Str(napeti) 'zobrazí napětí v mV
Call D3410position(0 , 8 )
Call D3410print(displej_string)
Wait 2
Call D3410clear
Loop
End[/code]

  1. Ve své poslední poště klikni na “upravit”,
    vyber myší celý kód a klikni na “Code”
    aby to bylo čitelnější.
    Tagy list] vymaž.

Jojo AREF mam připojené. Hned budu laborovat.
Dam pak vědět. Moc díky.

AB- pecka!!!
Já furt chtěl novou rutinu pro print. Tak už zmněřil sám sebe :smiley:
http://img641.imageshack.us/img641/4065/10064211.jpg

Mooooc díky!!!