Hi,

bin gerade dabei daten an das display Nokia 3310 zu senden,
das funktioniert auch teilweise.

Wenn eine taste gedrückt wird, wird was Übertragen und am Display ausgegeben.
Wird noch mal gedrückt wird es dann in einer anderen Position Ausgegeben.

Wie kann ich es anstellen, das nach Tastendruck die Ausgabe immer an der
selben stelle erscheint?

Unterprogramme:
Code:
Declare Sub Ukommando(byval Wert As Byte)
Declare Sub Udata(byval Wert As Byte)
Declare Sub Initialisierung
Declare Sub Lcdloeschen
Declare Sub Keypressed
Declare Sub Menueuhr
Declare Sub Menuetrip1
Declare Sub Menuetrip2
Declare Sub Menuekm
Tastendruck:
Code:
Do
  Debounce Pind.0 , 0 , Keypressed , Sub
Loop
Nach dem Tastendruck (menü):
Code:
Sub Keypressed

 Select Case Menue
        Case Menueuhr : Menuetrip1
        Case Menuetrip1 : Menuetrip2
        Case Menuetrip2 : Menuekm
        Case Else : Menueuhr
 End Select

End Sub
Unterprogramm:
Code:
' ----------------Uhr des Menüs----------------------------------------------
Sub Menueuhr

Lcdloeschen


Udata &H3F
Udata &H40
Udata &H40
Udata &H40
Udata &H3F

Udata &H00
Udata &H7F
Udata &H08
Udata &H08
Udata &H08
Udata &H7F

Udata &H00
Udata &H7F
Udata &H09
Udata &H19
Udata &H29
Udata &H46

Menue = Menueuhr

End Sub

' ----------------Trip1 des Menüs----------------------------------------------
Sub Menuetrip1

Lcdloeschen


Udata &H01
Udata &H01
Udata &H7F
Udata &H01
Udata &H01

Udata &H00
Udata &H7F
Udata &H09
Udata &H19
Udata &H29
Udata &H46

Udata &H00
Udata &H00
Udata &H41
Udata &H7F
Udata &H41
Udata &H00

Udata &H00
Udata &H7F
Udata &H09
Udata &H09
Udata &H09
Udata &H06

Udata &H00
Udata &H00
Udata &H42
Udata &H7F
Udata &H40
Udata &H00

Menue = Menuetrip1

End Sub
Initialisierung:
Code:
' ----------------Initialisierung----------------------------------------------
Sub Initialisierung
   Ukommando &H21                                           'Erweiterter Kommando-Mode
   Ukommando &H13                                           'Bias (Kontrast) Einstellung Original Nokia = &H13
   Ukommando &HA8                                           'Kontrasteinstellung Original Nokia = &HC8
   Ukommando &H06


   Ukommando &H0C
   Ukommando &H20                                           'Wieder in den normalen Kommando-Mode
      End Sub
Display Löschen:
Code:
' ----------------Display Löschen----------------------------------------------
Sub Lcdloeschen
  Local I As Word
   Ukommando &H20                                           'Normaler Kommando-Mode
   Ukommando &H0C                                           'Normaler Bildschirm
   Ukommando &H80                                           'Setze RAM-Adresse auf 0
   Dc = 1                                                   'Sicherstellen, dass man im Daten-Mode ist
   For I = 0 To 503
      Udata &H00
   Next
End Sub
Kommando & Daten senden:
Code:
'------------Kommando Senden---------------------------------------------------

Sub Ukommando(byval Wert As Byte)
   Dc = 0                                                   'in den Kommando-Mode
   Spiout Wert , 1
   Dc = 1                                                   'zurück in den Daten-Mode
End Sub

'------------Daten Senden------------------------------------------------------
Sub Udata(byval Wert As Byte)
   Dc = 1                                                   'um sicher zu gehen, dass man auch wirklich im Datenmode ist
   Ce = 0
   Spiout Wert , 1
   Ce = 1
End Sub
Das Datenblatt vom Nokia hab ich mir schon angesehen, komm jedoch damit nicht klar.
http://www.mikrocontroller.net/attac...82/pcd8544.pdf

Da steht das man in der X Richtung das z.B. so machen kann:
"&B10000100"
Jetzt sollte es im Achten Pixel beginnen, macht er aber nicht.


Ich hoffe da kann mir einer weiterhelfen!