PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD programmierung funzt nicht!!



bnitram
26.09.2010, 12:49
Hallo Community,
Ich wollte mal eine Stopuhr programmieren(Ich programmiere in Basic!!) und da Ich auch einen kleinen LCD für meien Bot besitze dachte ich mir das das doch mal ganz lustig wäre.
Aus Testgründen habe Ich mich zuerst darann gemacht, dass die Zeit in der MsgBox angezeigt wird.
Hier der Code:


Dim zahl As Integer
Dim zahl2 As Integer

Sub main()
PRO_BOT128_INIT()

Do While True
Msg_WriteWord(zahl++)
Msg_WriteChar(10)
Msg_WriteChar(13)

Msg_WriteWord(zahl2)
Msg_WriteChar(10)
Msg_WriteChar(13)

AbsDelay(250)

If zahl = 60 Then
zahl = 0
Msg_WriteWord(zahl2++)
Msg_WriteChar(10)
Msg_WriteChar(13)
End If
End While
End Sub


Hier läuft die "zahl" immer einen weiter und bei 60 geht sie auf Null zurück und die "zahl2" geht einen hoch, Und immer so weiter.Das funktioniert auch wunderbar!!

Jetzt wollte ich das ja aber auf dem LCD haben. Da zu habe ich disen Code geschrieben:

#define I2C_LCD_ADDR &H40
Dim LCD_TXT(22) As Char
Dim zahl As Integer
Dim zahl2 As Integer

Sub main()
PRO_BOT128_INIT()
I2C_LCD_INIT()

Do While True
I2C_LCD_CLR()
I2C_LCD_LOCATE(1,3)
BLINK_ON()
LCD_TXT= zahl++
I2C_LCD_WRITE_TEXT(LCD_TXT)
BLINK_OFF()

I2C_LCD_CLR()
I2C_LCD_LOCATE(1,5)
BLINK_ON()
LCD_TXT= zahl2
I2C_LCD_WRITE_TEXT(LCD_TXT)
BLINK_OFF()

AbsDelay(1000)

If zahl = 60 Then
zahl = 0
I2C_LCD_CLR()
I2C_LCD_LOCATE(1,5)
BLINK_ON()
LCD_TXT= zahl2++
I2C_LCD_WRITE_TEXT(LCD_TXT)
BLINK_OFF()
End If
End While
End Sub

Jetzt bekomme Ich aber immer die Meldung:"Array Varible LCD_TXT muß 1 indizes haben."

Wie kann Ich das noch Realisieren??
Hat da jemand eine Idee??

Mfg
bnitram

bnitram
26.09.2010, 17:01
Hat denn keiner eine Idee??

for_ro
26.09.2010, 17:37
Hat denn keiner eine Idee??
Du bist halt hier im Bascom Forum und dein Code ist nun mal kein Bascom sondern ein anderer Basic Dialekt.

Was wohl angemeckert wird, ist dass du ein Char Array deklarierst
Dim LCD_TXT(22) As Char
und dann diesem eine Zahl zuweist
LCD_TXT= zahl++
ohne ein bestimmtes Array-Element anzugeben.

bnitram
26.09.2010, 17:41
Und weißt du auch wie ich das nun machen kann??
Was muss Ich denn noch angeben??

Aber Danke für deine Antwort!!

Mfg
bnitram

bnitram
26.09.2010, 19:48
Edit:
Ich meine ja das das erste Prgramm super funktioniert, aber das mit dem LCD nicht!!!
Wie bekomme Ich das hin das er mir den Wert(die Zahl) anzeigt??

Mfg
bnitram