-
        

Ergebnis 1 bis 4 von 4

Thema: Kurioses Problem mit Scrolltext in Visual Basic

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253

    Kurioses Problem mit Scrolltext in Visual Basic

    Anzeige

    Ja, ich habe wieder ein sehr kurioses Problem im Angebot!
    Folgendes: Ich habe mir nen Programm auf meinem Atmega geschrieben das über RS232 Texte empfängt und auf nem LCD darstellt. Man sendet den String und dann CR und LF und schon erscheint der Text auf dem Display. (Momentan benutze ich nur die erste Zeile, dazu später). Das funktioniert auch prima. Nun dachte ich mir: Scrolle ich mal nen Text über das Display. Ich hatte vor, in VB nen Prog zu schreiben, das ne Textdatei einliest und über das Display laufen lässt. Das Programm ist unten. Textdatei einlesen tu ich noch nicht (ist nur ne Formalität) sondern ich nehm erstmal nen String. Das ist der lange. Kurze Erklärung zum Code (Das Projekt ist im Anhang): Im Formular hab ich nur nen Button, das COM-Objekt und nen Timer. Der Button startet den Timer und der Timer scrollt. Ich schneide mit "mid" das passende Stück des Strings raus und Incrementiere die Mid-Werte. Dann gibts noch ne Abbruchbedingung. Denke das leuchtet jedem ein. Das ganze ist jetzt nicht hochentwickelt, darum gehts hier auch nicht.
    Das Problem ist jetzt folgendes:
    Der Text wird in Zeile 1 des Display prima durchgescrollt. Zeile 2 ist in der Firmware auf dem Atmega eigentlich auch noch vorgesehen, aber ich hab sie der Einfachkeit halber für den Scroller deaktiviert. Nur: Das Scrollen wird immer langsamer, bis ca. Mitte des Strings. Dann wird der Text wieder schneller und hat gegen Ende des Strings wieder seine Anfangsgeschwindigkeit. Das passiert immer wieder. Also liegts nicht daran, dass an der Hardware was heissläuft oder so... Aber woran liegts?

    OK, dann sind halt keine *.rar-Files im Attachment erlaubt... Dann gibts das Projekt halt Hier *beleidigtsei*

    Code:
    Dim a, out As String
    Dim i As Integer
    
    Option Explicit
    
    
    
    Private Sub Command2_Click()
    Timer1.Enabled = True
    End Sub
    
    Private Sub Form_Load()
    a = "++++++++++++++goblins ultimativer teststring zum testen des lcd-scrollers programmiert in visual basic (ätz)+++++++++++++++++++"
    i = 1
    Com.PortOpen = False Then
    Com.CommPort = 1
    Com.Settings = "4800,N,8,1"
    Com.PortOpen = True
    Com.RThreshold = 1
    Com.InputLen = 1
    End Sub
    
    Private Sub Timer1_Timer()
    out = Mid(a, i, i + 15)
    Com.Output = out & Chr(13) & Chr(10)
    
    i = i + 1
    If i > Len(a) - 15 Then i = 1
    End Sub

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    tjaaaa, da fällt euch nix mehr ein, oder? ich wette die lösung des problems ist total einfach.... nur komm ich nicht drauf.. kenne mich auch glücklicherweise mit vb ned so aus. wenn der hardwarezugriff in java doch ned so kompliziert wäre....

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    23.01.2006
    Ort
    Neu-Anspach
    Alter
    30
    Beiträge
    18
    Ich würd aus

    Com.PortOpen = False Then

    ein

    IF Com.PortOpen = False Then

    machen. Mehr fällt mir aber net ein! Ohne scrollen funzts?

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    oh, die zeile gehört gelöscht. hab ich hier vergessen. die abfrage ist überflüssig. was heißt ohne scrollen funzts... es scrollt ja auch prima. nur ist da halt die geschwindigkeitsänderung die ich mir nicht erklären kann... vielleicht kommt es auch zu einer überlagerung zwischen der output-geschwindigkeit des pcs und dem prozessortakt des atmegas...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •