Atmega8L + lcd z noki 3210 (LPH7677) na sterowniku PCD8544

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
hagop
-
Posty: 16
Rejestracja: 15 maja 2009, 18:53
Lokalizacja: Słupsk

Atmega8L + lcd z noki 3210 (LPH7677) na sterowniku PCD8544

Post autor: hagop » 27 mar 2010, 22:01

Witam!

Zbudowałem układ, który miał służyć regulacji obrotów silnika DC przez PWM, obciążenie tego silnika oraz obroty z jakimi aktualnie pracuje. Wszystkie te parametry czyli, wypełnienie PWM, obroty, oraz prąd jaki przez niego płynie miał być wyświetlany na tym wyświetlaczu. Wszystko udało mi się zrobić oprócz uruchomienia tego nieszczęsnego wyświetlacza. Oto schemat, pcb, zlacze wyswietlacza, i zbudowane urzadzenie. Jest to urządzenie prototypowe bo w finalnej wersji zastosowałem standardowy wyświetlacz LCD (widać to po stabilizatorku na przewodach, wkradł się chochlik i pozmieniał mi wyprowadzenia :)).

ObrazekObrazekObrazekObrazekObrazek
Obrazek

Kod do przetestowania tego wyświetlacza:

Kod: Zaznacz cały

'-----------LCD for Nokia 3310 and Mega AVR---------------------------------------
'
'Based on Louis Frigon program in C: "Nokia LCD Library" at www.microsyl.com
'and
'Darek Dobrowolski program in Bascom: "Wysterowanie wyświetlacza LCD LPH7779(Nokia 3310) przez ATmega128L cz.1,2,3" at
'http://maxparadys.w.interia.pl/avr.htm
'
'I think bitmap prepared with FastLCD from http://www.fastavr.com/
'
'
'By Grzegorz Bujanowski RGB 12.06.05
'
'Bascom AVR 1.11.7.7
'--------------------------------------------------------------------------------

'Set in Options, Compiler:
'HW stack=128
'Soft Stack=128
'Frame=128

$regfile = "m8def.dat"
$crystal = 8000000


'LCD VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Spi = Soft , Din = Pinb.4 , Dout = Pind.1 , Ss = Pinb.2 , Clock = Pind.0
Spiinit

'---------------------- LCD vars  ----------------------------
Dim Lcd_data As Byte
Dim Updatelcd As Bit                                        '1 = Update
Dim Lcd_cache(504) As Byte                                  'data to send to LCD RAM
Dim Lcdcacheidx As Word                                     'pointer
Dim Ch As Byte


'---------------------- Aliases ------------------------------------
Lcd_dc Alias Portd.2                                        'low = command mode, high = data
Lcd_sce Alias Portd.3                                       'low = enable LCD SPI, high = SPI disable
Lcd_rst Alias Portd.4                                       'low = reset

'--------------------- LCD constants -----------------------------
Const Lcd_inver = &H0D                                      'inverted  screen (after normal command mode)
Const Lcd_normal = &H0C                                     'normal  screen (after normal command mode)
Const Test = &H09                                           'All pixels on (after normal command mode)
Const Normal_command = &H20                                 'normal command mode

'--------------------- LCD Sub declarations -------------------------
Declare Sub Lcdcmd(byval Command As Byte )
Declare Sub Lcdinit
Declare Sub Lcdclear
Declare Sub Lcdupdate
Declare Sub Lcdgoxy(byval X As Byte , Byval Y As Byte)
'from 1,1 to 14,6
Declare Sub Lcdchr(byval Ch As Byte , Byval Lcdfontsize As Byte , Byval Ch_inv As Byte)
'ch=character, Lcdfontsize 1 = high 1, Lcdfontsize 2=high 2, Ch_inv 1=inverse
Declare Sub Lcdstr(byval Lcdstring As String , Byval Lcdfontsize As Byte , Byval Ch_inv As Byte)
'lcdstring = string to LCD, Lcdfontsize 1 = high 1, Lcdfontsize 2=high 2, Ch_inv 1=inverse
Declare Sub Lcdpixel(byval X As Byte , Byval Y As Byte , Byval Pixelmode As Byte )
'x 1-84, y 1-48, pixelmode 0=OFF, pixelmode 1=ON, pixelmode 2=XOR
Declare Sub Lcdline(byval X1 As Byte , Byval Y1 As Byte , Byval X2 As Byte , Byval Y2 As Byte , Byval Pixelmode As Byte )
'xy1=start, xy2=end of line, pixelmode as in Lcdpixel
Declare Sub Lcdrectangle(byval X3 As Byte , Byval Y3 As Byte , Byval Wide As Byte , Byval Height As Byte)
Declare Sub Show(byval Xx As Byte , Byval Yy As Byte)
'show bitmap from program memory. XX 1 to (84-_width), YY 1 to 6 (n*8)
Declare Sub Clearshow(byval Xx As Byte , Byval Yy As Byte)
'clear window last show
'LCD ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

'--------------------- LCD Init ----------------------------------
Call Lcdinit                                                'must be first in program!!!

'vvvvvvvvvvvvvvvvvvvv DEMO VVVVVVVVVVVVVVVVVVVVVVVVVVV

Dim Ii As Byte
Dim Wsk As Byte
Wsk = 0

Do
   Lcdclear

   Lcdgoxy 6 , 5
   Lcdstr "Text" , 1 , 0
   Lcdupdate
   Wait 2

   Lcdgoxy 1 , 1
   Lcdstr "Normal" , 1 , 0
   Lcdupdate
   Wait 2

   Lcdgoxy 9 , 1
   Lcdstr "Inwers" , 1 , 1
   Lcdupdate
   Wait 2

   Lcdgoxy 1 , 3
   Lcdstr "Double" , 2 , 0
   Lcdupdate
   Wait 2

   Lcdgoxy 1 , 3
   Lcdstr "Bitmap" , 2 , 0
   Restore Egypt
   Show 1 , 4
   Lcdupdate
   Wait 3

   Lcdclear

   Lcdgoxy 3 , 3
   Lcdstr "  Pixels " , 1 , 0
   Lcdupdate
   Wait 1

   For Ii = 1 To 84
      If Wsk = 0 Then
         Wsk = 1
      Else
         Wsk = 0
      End If
      Lcdpixel Ii , 8 , Wsk
      Lcdupdate
      Waitms 10
   Next Ii

   Lcdgoxy 3 , 3
   Lcdstr "  Line   " , 1 , 0
   Lcdupdate
   Wait 1
   Lcdline 1 , 1 , 84 , 48 , 1
   Lcdupdate
   Wait 3

   Lcdgoxy 3 , 3
   Lcdstr "  Line XOR" , 1 , 1
   Lcdgoxy 3 , 4
   Lcdstr "          " , 1 , 1
   Lcdupdate
   Wait 1
   Lcdline 84 , 1 , 1 , 48 , 2
   Lcdupdate
   Wait 3

   Lcdgoxy 3 , 3
   Lcdstr "Rectangle " , 1 , 0
   Lcdupdate
   Wait 1

   Lcdrectangle 3 , 3 , 80 , 43
   Lcdupdate
   Wait 2

 Loop

'^^^^^^^^^^^^^^^^^^^^^ DEMO ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^



'  ----------------------- LCD subroutines -----------------------

'----------------------- Lcdcmd (Command) ----------------------
Sub Lcdcmd(byval Command As Byte )
   Reset Lcd_sce                                            ' SPI enable
   Reset Lcd_dc                                             ' command mode
   Spiout Command , 1
   Set Lcd_dc                                               ' data mode
   Set Lcd_sce                                              ' data mode
End Sub

'----------------------- Lcdinit ------------------------------
Sub Lcdinit
   Waitms 5
   Reset Lcd_rst                                            'RESET LCD
   Waitms 5
   Set Lcd_rst                                              'end of reset
   Set Lcd_sce                                              'in Lcdcmd() will be "L"!
   Call Lcdcmd(&H21)                                        'extended command mode
   Call Lcdcmd(&Hb8)                                        'LCD contrast (mayby you must change)
   Call Lcdcmd(&H06)                                        'temperature compensation
   Call Lcdcmd(&H13)                                        'bias 1:48
   Call Lcdcmd(&H20)                                        'normal command mode
   Call Lcdcmd(&H0c)                                        'normal display
   Call Lcdcmd(&H40)                                        'Y=0
   Call Lcdcmd(&H80)                                        'X=0
   Call Lcdclear
   Call Lcdupdate
End Sub

'---------------------- Lcdclear ------------------------------
Sub Lcdclear
   Local I As Word
   For I = 1 To 504
       Lcd_cache(i) = 0
   Next I
'    Lcdcacheidx = 1
End Sub
'--------------------- Lcdupdate -------------------------------
'copy full LCD_cache to LCD RAM
Sub Lcdupdate
   Local I As Word
   Call Lcdcmd(&H80)                                        'sets 0 X-addr of RAM
   Call Lcdcmd(&H40)                                        'sets 0 Y-addr of RAM
   For I = 1 To 504
     Lcd_data = Lcd_cache(i)
     Reset Lcd_sce                                          'SPI to LCD enable
     Set Lcd_dc                                             'Data
     Spiout Lcd_data , 1
     While Spsr.7 = 1                                       'wait until SPIF = 0
     Wend
     Reset Lcd_dc
     Set Lcd_sce                                            'SPI to LCD disable
   Next I
   Updatelcd = 0
End Sub

'--------------------- Lcdgoxy--------------------------------
Sub Lcdgoxy(byval X As Byte , Byval Y As Byte)              'from 1,1 to 14,6
   Local I As Word
   Local J As Word
   X = X - 1
   I = X
   I = I * 6
   Y = Y - 1
   J = Y
   J = Y * 84
   Lcdcacheidx = I + J
   Incr Lcdcacheidx                                         'Lcdchacheidx 1-504!
End Sub

'------------------ Lcdchr-------------------------------------
Sub Lcdchr(byval Ch As Byte , Byval Lcdfontsize As Byte , Byval Ch_inv As Byte)       '1 character on LCD
   Local I As Byte
   Local J As Word
   Local K As Byte
   Local Ba As Byte
   Local Bb As Byte
   Local Tmpidx As Word
   Local Tmpidx1 As Word
   If Ch < &H20 Then Ch = 92
   If Ch > &H7B Then Ch = 92
   J = Ch - 32
   J = J * 5
   If Lcdfontsize = 1 Then
      For I = 1 To 6
         K = Lookup(j , Fontlookup)
         If Ch_inv = 1 Then                                 'negative
            If I = 6 Then                                   'black for 6 row
               K = 255
            Else
               K = K Xor &HFF
            End If
         Else
            If I = 6 Then                                   'white for 6 row
               K = 0
            End If
         End If

         Lcd_cache(lcdcacheidx) = K
         Incr Lcdcacheidx
         Incr J
      Next I
   Else                                                     'high 2
      Tmpidx = Lcdcacheidx - 84                             'signs go up and can't be at 1,x
      For I = 1 To 6
         If I = 6 Then
            If Ch_inv = 1 Then
               K = 255
            Else
               K = 0
            End If
         Else
            K = Lookup(j , Fontlookup)
            If Ch_inv = 1 Then
               K = K Xor &HFF
            End If
         End If
         Ba.0 = K.0
         Ba.1 = K.0
         Ba.2 = K.1
         Ba.3 = K.1
         Ba.4 = K.2
         Ba.5 = K.2
         Ba.6 = K.3
         Ba.7 = K.3

         Bb.0 = K.4
         Bb.1 = K.4
         Bb.2 = K.5
         Bb.3 = K.5
         Bb.4 = K.6
         Bb.5 = K.6
         Bb.6 = K.7
         Bb.7 = K.7

         Lcd_cache(tmpidx) = Ba                             'up of character
         Incr Tmpidx
         Lcd_cache(tmpidx) = Ba                             'double wide
         Incr Tmpidx
         Tmpidx1 = Tmpidx + 82
         Lcd_cache(tmpidx1) = Bb                            'down of character
         Incr Tmpidx1
         Lcd_cache(tmpidx1) = Bb                            'double wide
         Incr J
      Next I
      Lcdcacheidx = Lcdcacheidx + 12                        '6+6
  End If
  Kon_lcdchr:
End Sub
'-------------------- Lcdstr----------------------------------------
Sub Lcdstr(lcdstring As String , Lcdfontsize As Byte , Ch_inv As Byte)
   Local M As Byte
   Local N As String * 1
   For M = 1 To Len(lcdstring)
      N = Mid(lcdstring , M , 1)
      Ch = Asc(n)
      Call Lcdchr(ch , Lcdfontsize , Ch_inv )
   Next M
End Sub
'------------------- Lcdpixel --------------------------------------
Sub Lcdpixel(x As Byte , Y As Byte , Pixelmode As Byte )
   Local Index As Word
   Local Offset As Byte
   Local I As Byte
   If X > 84 Then Goto End_lcdpixel
   If Y > 48 Then Goto End_lcdpixel
   Y = Y - 1
   Index = Y / 8
   Index = Index * 84
   Index = Index + X
   Offset = Y / 8
   Offset = Offset * 8
   Offset = Y - Offset
   Lcd_data = Lcd_cache(index)
   I = 1
   Shift I , Left , Offset
   Select Case Pixelmode
   Case 0:                                                  'pixel off
      I = I Xor &HFF
      Lcd_data = Lcd_data And I
   Case 1:                                                  'pixel on
      Lcd_data = Lcd_data Or I
   Case 2:                                                  'pixel xor
      Lcd_data = Lcd_data Xor I
   End Select
   Lcd_cache(index) = Lcd_data
End_lcdpixel:
End Sub
'----------------------- Lcdline ------------------------------------
Sub Lcdline(x1 As Byte , Y1 As Byte , X2 As Byte , Y2 As Byte , Pixelmode As Byte )
   Local Dx As Integer
   Local Dy As Integer
   Local Stepx As Integer
   Local Stepy As Integer
   Local Fraction As Integer
   Local I As Byte

   Dy = Y2 - Y1
   Dx = X2 - X1

   If Dy < 0 Then
      Dy = -dy
      Stepy = -1
   Else
      Stepy = 1
   End If
   If Dx < 0 Then
      Dx = -dx
      Stepx = -1
   Else
      Stepx = 1
   End If
   Shift Dx , Left , 1                                      '-2
   Shift Dy , Left , 1                                      '-2
   Call Lcdpixel(x1 , Y1 , Pixelmode)

   If Dx > Dy Then
      I = Dx
      Shift I , Right , 1                                   '/2
      Fraction = Dy - I
      While X1 <> X2
         If Fraction >= 0 Then
            Y1 = Y1 + Stepy
            Fraction = Fraction - Dx
         End If
         X1 = X1 + Stepx
         Fraction = Fraction + Dy
         Call Lcdpixel(x1 , Y1 , Pixelmode)
      Wend
   Else
      I = Dy
      Shift I , Right , 1                                   '/2
      Fraction = Dx - I
      While Y1 <> Y2
         If Fraction >= 0 Then
            X1 = X1 + Stepx
            Fraction = Fraction - Dy
         End If
         Y1 = Y1 + Stepy
         Fraction = Fraction + Dx
         Call Lcdpixel(x1 , Y1 , Pixelmode)
      Wend
   End If
Updatelcd = 1
End Sub

'  ----------------------- LCDrectangle -----------------------

Sub Lcdrectangle(x3 As Byte , Y3 As Byte , Wide As Byte , Height As Byte)
    Wide = X3 + Wide
    Decr Wide
    Height = Y3 + Height
    Decr Height
    Call Lcdline(x3 , Y3 , Wide , Y3 , 1 )
    Call Lcdline(x3 , Height , Wide , Height , 1 )
    Call Lcdline(x3 , Y3 , X3 , Height , 1 )
    Call Lcdline(wide , Y3 , Wide , Height , 1 )
End Sub

 '--------------------- Show ----------------------
 'XX 1 to (84-_width), YY 1 to 6 (n*8)
 'must be RESTORE "data to show" before CALL it subrotine
Sub Show(xx As Byte , Yy As Byte)
   Local Swidth As Byte
   Local Shigh As Byte
   Local Cacheidx As Word
   Local I As Byte
   Local J As Byte
   Local K As Byte
   Local L As Byte
   Read Swidth
   Read Shigh
   K = Yy + Shigh
   K = K - 1
   L = Xx + Swidth
   L = L - 1
   If K > 6 Then Goto End_show
   If L > 84 Then Goto End_show

   For I = Yy To K
   Cacheidx = I - 1
      Cacheidx = Cacheidx * 84
      Cacheidx = Cacheidx + Xx
      For J = Xx To L
         Read Ch
         Lcd_cache(cacheidx) = Ch
         Incr Cacheidx
      Next J
   Next I
   Updatelcd = 1
   End_show:
End Sub

'--------------------- ClearShow ----------------------
'XX 1 to (84-_width), YY 1 to 6 (n*8)
'must be RESTORE "data to show" before CALL it subrotine
Sub Clearshow(xx As Byte , Yy As Byte)
   Local Swidth As Byte
   Local Shigh As Byte
   Local Cacheidx As Word
   Local I As Byte
   Local J As Byte
   Local K As Byte
   Local L As Byte
   Read Swidth
   Read Shigh
   K = Yy + Shigh
   K = K - 1
   L = Xx + Swidth
   L = L - 1
   For I = Yy To K
   Cacheidx = I - 1
      Cacheidx = Cacheidx * 84
      Cacheidx = Cacheidx + Xx
      For J = Xx To L
         Lcd_cache(cacheidx) = 0
         Incr Cacheidx
      Next J
   Next I
   Updatelcd = 1
End Sub


End                                                         'end program                                                                             'end program


'                              Character generator

'     This table defines the standard ASCII characters in a 5x7 dot format.
'------------------------------------------------------------------------------/
$data
Fontlookup:
Data &H00 , &H00 , &H00 , &H00 , &H00 ,                     ' sp
Data &H00 , &H00 , &H2F , &H00 , &H00 ,                     ' !
Data &H00 , &H07 , &H00 , &H07 , &H00 , ' "
Data &H14 , &H7F , &H14 , &H7F , &H14 ,                     ' #
Data &H24 , &H2A , &H7F , &H2A , &H12 ,                     ' $
Data &HC4 , &HC8 , &H10 , &H26 , &H46 ,                     ' %
Data &H36 , &H49 , &H55 , &H22 , &H50 ,                     ' &
Data &H00 , &H05 , &H03 , &H00 , &H00 ,                     ' '
Data &H00 , &H1C , &H22 , &H41 , &H00 ,                     ' (
Data &H00 , &H41 , &H22 , &H1C , &H00 ,                     ' )
Data &H14 , &H08 , &H3E , &H08 , &H14 ,                     ' -
Data &H08 , &H08 , &H3E , &H08 , &H08 ,                     ' +
Data &H00 , &H00 , &H50 , &H30 , &H00 ,                     ' ,
Data &H10 , &H10 , &H10 , &H10 , &H10 ,                     ' -
Data &H00 , &H60 , &H60 , &H00 , &H00 ,                     ' .
Data &H20 , &H10 , &H08 , &H04 , &H02 ,                     ' /
Data &H3E , &H51 , &H49 , &H45 , &H3E ,                     ' 0
Data &H00 , &H42 , &H7F , &H40 , &H00 ,                     ' 1
Data &H42 , &H61 , &H51 , &H49 , &H46 ,                     ' 2
Data &H21 , &H41 , &H45 , &H4B , &H31 ,                     ' 3
Data &H18 , &H14 , &H12 , &H7F , &H10 ,                     ' 4
Data &H27 , &H45 , &H45 , &H45 , &H39 ,                     ' 5
Data &H3C , &H4A , &H49 , &H49 , &H30 ,                     ' 6
Data &H01 , &H71 , &H09 , &H05 , &H03 ,                     ' 7
Data &H36 , &H49 , &H49 , &H49 , &H36 ,                     ' 8
Data &H06 , &H49 , &H49 , &H29 , &H1E ,                     ' 9
Data &H00 , &H36 , &H36 , &H00 , &H00 ,                     ' :
Data &H00 , &H56 , &H36 , &H00 , &H00 ,                     ' ;
Data &H08 , &H14 , &H22 , &H41 , &H00 ,                     ' <
Data &H14 , &H14 , &H14 , &H14 , &H14 ,                     ' =
Data &H00 , &H41 , &H22 , &H14 , &H08 ,                     ' >
Data &H02 , &H01 , &H51 , &H09 , &H06 ,                     ' ?
Data &H32 , &H49 , &H59 , &H51 , &H3E ,                     ' @
Data &H7E , &H11 , &H11 , &H11 , &H7E ,                     ' A
Data &H7F , &H49 , &H49 , &H49 , &H36 ,                     ' B
Data &H3E , &H41 , &H41 , &H41 , &H22 ,                     ' C
Data &H7F , &H41 , &H41 , &H22 , &H1C ,                     ' D
Data &H7F , &H49 , &H49 , &H49 , &H41 ,                     ' E
Data &H7F , &H09 , &H09 , &H09 , &H01 ,                     ' F
Data &H3E , &H41 , &H49 , &H49 , &H7A ,                     ' G
Data &H7F , &H08 , &H08 , &H08 , &H7F ,                     ' H
Data &H00 , &H41 , &H7F , &H41 , &H00 ,                     ' I
Data &H20 , &H40 , &H41 , &H3F , &H01 ,                     ' J
Data &H7F , &H08 , &H14 , &H22 , &H41 ,                     ' K
Data &H7F , &H40 , &H40 , &H40 , &H40 ,                     ' L
Data &H7F , &H02 , &H0C , &H02 , &H7F ,                     ' M
Data &H7F , &H04 , &H08 , &H10 , &H7F ,                     ' N
Data &H3E , &H41 , &H41 , &H41 , &H3E ,                     ' O
Data &H7F , &H09 , &H09 , &H09 , &H06 ,                     ' P
Data &H3E , &H41 , &H51 , &H21 , &H5E ,                     ' Q
Data &H7F , &H09 , &H19 , &H29 , &H46 ,                     ' R
Data &H46 , &H49 , &H49 , &H49 , &H31 ,                     ' S
Data &H01 , &H01 , &H7F , &H01 , &H01 ,                     ' T
Data &H3F , &H40 , &H40 , &H40 , &H3F ,                     ' U
Data &H1F , &H20 , &H40 , &H20 , &H1F ,                     ' V
Data &H3F , &H40 , &H38 , &H40 , &H3F ,                     ' W
Data &H63 , &H14 , &H08 , &H14 , &H63 ,                     ' X
Data &H07 , &H08 , &H70 , &H08 , &H07 ,                     ' Y
Data &H61 , &H51 , &H49 , &H45 , &H43 ,                     ' Z
Data &H00 , &H7F , &H41 , &H41 , &H00 ,                     ' [
Data &H55 , &H2A , &H55 , &H2A , &H55 ,                     ' 55
Data &H00 , &H41 , &H41 , &H7F , &H00 ,                     ' ]
Data &H04 , &H02 , &H01 , &H02 , &H04 ,                     ' ^
Data &H40 , &H40 , &H40 , &H40 , &H40 ,                     ' _
Data &H00 , &H01 , &H02 , &H04 , &H00 ,                     ' '
Data &H20 , &H54 , &H54 , &H54 , &H78 ,                     ' a
Data &H7F , &H48 , &H44 , &H44 , &H38 ,                     ' b
Data &H38 , &H44 , &H44 , &H44 , &H20 ,                     ' c
Data &H38 , &H44 , &H44 , &H48 , &H7F ,                     ' d
Data &H38 , &H54 , &H54 , &H54 , &H18 ,                     ' e
Data &H08 , &H7E , &H09 , &H01 , &H02 ,                     ' f
Data &H0C , &H52 , &H52 , &H52 , &H3E ,                     ' g
Data &H7F , &H08 , &H04 , &H04 , &H78 ,                     ' h
Data &H00 , &H44 , &H7D , &H40 , &H00 ,                     ' i
Data &H20 , &H40 , &H44 , &H3D , &H00 ,                     ' j
Data &H7F , &H10 , &H28 , &H44 , &H00 ,                     ' k
Data &H00 , &H41 , &H7F , &H40 , &H00 ,                     ' l
Data &H7C , &H04 , &H18 , &H04 , &H78 ,                     ' m
Data &H7C , &H08 , &H04 , &H04 , &H78 ,                     ' n
Data &H38 , &H44 , &H44 , &H44 , &H38 ,                     ' o
Data &H7C , &H14 , &H14 , &H14 , &H08 ,                     ' p
Data &H08 , &H14 , &H14 , &H18 , &H7C ,                     ' q
Data &H7C , &H08 , &H04 , &H04 , &H08 ,                     ' r
Data &H48 , &H54 , &H54 , &H54 , &H20 ,                     ' s
Data &H04 , &H3F , &H44 , &H40 , &H20 ,                     ' t
Data &H3C , &H40 , &H40 , &H20 , &H7C ,                     ' u
Data &H1C , &H20 , &H40 , &H20 , &H1C ,                     ' v
Data &H3C , &H40 , &H30 , &H40 , &H3C ,                     ' w
Data &H44 , &H28 , &H10 , &H28 , &H44 ,                     ' x
Data &H0C , &H50 , &H50 , &H50 , &H3C ,                     ' y
Data &H44 , &H64 , &H54 , &H4C , &H44



Egypt:
Data 84 , 3,                                                ' Image Table Name, Xbytes, N of Lines, 254 bytes
Data &HFF , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01,
Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H81 , &H81 , &H81 , &H41 , &H41 , &H21,
Data &H21 , &H31 , &H11 , &H11 , &H11 , &H11 , &H11 , &H31 , &H21 , &HA1 , &H41 , &HC1 , &H81 , &H81 , &H01 , &H01,
Data &H01 , &H01 , &H01 , &H81 , &HC1 , &HE1 , &HF1 , &HF9 , &HFF , &HF3 , &H8D , &H11 , &H31 , &H41 , &H81 , &H81,
Data &HE1 , &HF1 , &HF9 , &HFD , &HFF , &HFF , &HFD , &H09 , &H11 , &H21 , &H41 , &H81 , &H01 , &H01 , &H01 , &H01,
Data &H01 , &H01 , &H01 , &HFF , &HFF , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40,
Data &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H60 , &H60 , &H3C , &H04 , &H06 , &H03 , &H01 , &H00,
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H80 , &HE0 , &HE0 , &HF8 , &HFC , &HFE , &HFF , &HFF , &H82 , &H04,
Data &H08 , &H30 , &HE1 , &HE3 , &HF4 , &HFC , &HFE , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HF0,
Data &HFC , &HFC , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFE , &HE0 , &H00 , &H00 , &H00,
Data &H01 , &H02 , &H04 , &H08 , &H10 , &H20 , &HC0 , &HFF , &HFF , &HFE , &HDE , &HFE , &HFE , &HFF , &HFE , &HFF,
Data &HFE , &HFF , &HEF , &HEF , &HDF , &HDF , &HFF , &HEF , &HFF , &HEF , &HEF , &HEF , &HEF , &H9E , &HDE , &HDE,
Data &HDE , &HDE , &HCE , &HCE , &HCE , &HEE , &HEE , &HCE , &H8E , &HCF , &HCF , &HCF , &HDF , &HEF , &HCF , &HEF,
Data &HCF , &HEF , &HDF , &HFC , &HFE , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF,
Data &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF,
Data &HFF , &HFE , &HFC , &HFC , &HF8 , &HFC , &HFC , &HFF , &HFF , &HFF , &HFC , &HFF

Po zaprogramowaniu atmegi nic się nie dzieje. Wyświetlacz nie reaguje :(
Ponieważ ja wyświetlacz mam podłączony do innych portów niż było to w oryginale pozmieniałem konfiguracje. Oprócz tego docisnołem wyświetlacz palcem i włączyłem zasilanie i dalej nic. Na jednym ze zdjęć (zbliżenie na złącze wykonane na PCB, dla gumek przewodzących) usunołem elementy "Polygonu" nożykiem. Wyświetlacz przykleilem klejem na gorąco na 4 rogach. Co może być z tym nie tak? Wyświetlacz jest sprawny jak włoże go spowrotem do resztek telefonu to działa.

Pod tym linkiem znajduje się troche informacji o tym wyświetlaczu. Może pomyliłem się na płytce z wyprowadzeniami? Nie jestem w stanie już nawet tego zweryfikować bo patrze na to urządzenie już bite 3 dni od rana do wieczora.

Nie mam oscyloskopu aby sprawdzić czy zachodzi jakaś transmisja miedzy uK a LCD.
Kondensator przy LCD na schemacie oryginalnym był 4,7uF (chyba elektrolit, nie wiem bo nie było opisane), ja zastosowałem tantala 10uF bo takiego tylko znalazłem na starej karcie graficznej

Z góry dzięki za pomoc.

[ Dodano: 2010-03-28, 22:57 ]
Chyba znalazłem błąd. Chodzi o funkcje wysyłającą dane. Ona działa na hardwarowym spi, a ja wyswietlacz podpiety pod inne piny. Musze tylko napisac funkcje wysylajaca dane i wszysko powinno smigac :)

ODPOWIEDZ