- LiFePO4 Speicher Test         
Ergebnis 1 bis 5 von 5

Thema: Variable senden über RS232 Atmega8515L STK500

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    22.10.2005
    Beiträge
    63

    Variable senden über RS232 Atmega8515L STK500

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich möchte als Anfänger eine Variable über die RS232 schicken
    um diese Variable dann mit VisualBasic auszulesen.

    Ich nutze BascomAVR und den STK500 KIT von Atmel.

    Wenn ich den schalter drücke (SW0) soll die Variable versendet werden.

    Ich hab mal was angefangen, aber ob das so passt weiß ich nicht, da ich
    nicht weiß wie ich das Prüfen soll.


    Code:
    $regfile = "8515def.dat"
    $crystal = 3200000
    
    Ddrb = &B00000001                                           'setz Pin 0-7 von PortB
    Ddrd = &B00000000                                           'setz Pin 0-7 von PortD zurück
    
    Dim Meinevariable As Byte
    
    Meinevariable = "12,12"
    
    Do
    
     If Pind.0 = 1 Then
     Open "comd.1:9600,8,n,1" For Output As Byte
       Print Meinevariable                                      'abfrage von Pin 0
       Reset Portb.0
      Close Meinevariable                                       'setz Pin 0 zurück
     Else
       Set Portb.0                                              'setz Pin 0
     End If
    
    Loop
    und in Visual Basic 6 wird das ganze dann so empfangen:

    Code:
    Dim werte As Byte
    
    Select Case MSComm1.CommEvent
    Case comEvSend ' sende puffer jetzt leer (hier braucht nichts getan zu werden)
    Case comEvReceive ' es wurden daten empfangen
    werte = MSComm1.Input
    
    If werte <> "" Then
        Text1.Text = Text1.Text & werte & vbCrLf
    End If
    End Select
    Leider empfange ich garnichts

    Vielleicht kann mir da ja einer Weiterhelfen?

    Wasi...

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    71
    Beiträge
    277
    Hallo,

    Bitte nicht böse sein, aber in Deinem Programm stimmt fast keine Zeile. Es macht den Eindruck, als hättest Du wahllos etwas zusammengeschrieben, das optisch entfernte Ähnlichkeit mit einem Programm hat.
    Bitte knöpfe Dir doch mal eines der Beispielprogramme vor, die mit Bascom geliefert werden. Nutze zunächst mal ein Terminalprogramm, um die gesendeten Zeichen zu empfangen.

    Dann beschäftige Dich insbesondere mit Variablentypen und deren Dimensionierung und verändere das Beispielprogramm schrittweise nach eigenen Vorstellungen.

    Grüße
    Henrik

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    22.10.2005
    Beiträge
    63
    Hallo,

    Bitte nicht böse sein, aber in Deinem Programm stimmt fast keine Zeile. Es macht den Eindruck, als hättest Du wahllos etwas zusammengeschrieben, das optisch entfernte Ähnlichkeit mit einem Programm hat.
    Bin ich nicht.


    Bitte knöpfe Dir doch mal eines der Beispielprogramme vor, die mit Bascom geliefert werden. Nutze zunächst mal ein Terminalprogramm, um die gesendeten Zeichen zu empfangen.
    Vielleicht kannst du mir noch sagen welches das Terminalprogramm ist?

    Dann beschäftige Dich insbesondere mit Variablentypen und deren Dimensionierung und verändere das Beispielprogramm schrittweise nach eigenen Vorstellungen.
    Genau so hab ich mir das Vorgestellt!
    Gruß Wasi...

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    71
    Beiträge
    277
    Hallo,

    [quote="Wasi"]
    Vielleicht kannst du mir noch sagen welches das Terminalprogramm ist?
    Hyperterminal ist z.B. Bei Windows dabei. Falls noch nicht installiert einfach nachinstallieren.

    In Hyperteminal dann natürlich die gleichen Prameter einstellen, wie in Deinem Testprogramm.

    Wenn dann das erste

    Print "Hello World" geklappt hat, kann es weiter gehen.

    Grüße
    Henrik

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    22.10.2005
    Beiträge
    63
    Hallo Henrik,

    hab das mit der Übertragung hinbekommen, war nur die einstellung
    für die Hardware falsch , auch an meinen Zwei scripts hab ich noch
    gearbeitet.

    Es geht voran .

    Sendescript:
    Code:
    '##############################################################
    'Wird sw0 gedrückt wird übertragen und im VB Programm Werte.exe
    'empfangen!
    '##############################################################
    
    $regfile = "8515def.dat"
    
    
    $baud = 9600
    $crystal = 3686400
    
    Ddrb = &B00000001                                           'LED0 leuchtet wenn SW0 gedrückt wird
    Ddra = &B00000000                                           'setz Pin 0-7 von PortD zurück
    
    Dim Wert1 As String * 5
    Dim Wert2 As String * 5
    Dim Wert3 As String * 5
    Dim Wert4 As String * 5
    Dim Wert5 As String * 5
    Dim Wert6 As String * 5
    Dim Wert7 As String * 5
    Dim Wert8 As String * 5
    Dim Wert9 As String * 5
    Dim Wert10 As String * 5
    Dim Wert11 As String * 5
    Dim Wert12 As String * 5
    
    Wert1 = "1"
    Wert2 = "2"
    Wert3 = "3"
    Wert4 = "4"
    Wert5 = "5"
    Wert6 = "6"
    Wert7 = "7"
    Wert8 = "8"
    Wert9 = "9"
    Wert10 = "10"
    Wert11 = "11"
    Wert12 = "12,01"
    
    Do
    If Pina.0 = 0 Then                                          'abfrage von Pin 0
       Reset Portb.0                                            'setz Pin 0 zurück
     Wait 1
    
    Print Wert1
    Print Wert2
    Print Wert3
    Print Wert4
    Print Wert5
    Print Wert6
    Print Wert7
    Print Wert8
    Print Wert9
    Print Wert10
    Print Wert11
    Print Wert12
    
     Else
    
       Set Portb.0                                              'setz Pin 0
    
     End If
    Loop
    End                                                         'Ende der Abfrage
    Empfangsscript:
    Code:
    Private Sub MSComm1_OnComm()
    
    Dim werte As String
    
    Select Case MSComm1.CommEvent
    Case comEvSend ' sende puffer jetzt leer (hier braucht nichts getan zu werden)
    Case comEvReceive ' es wurden daten empfangen
    werte = MSComm1.Input
    
    If werte <> "" Then
        Text1.Text = Text1.Text & werte
    End If
    End Select
       
    End Sub
    Das ist sicherlich noch ausbaufähig, aber für den Anfang bin ich mal zufrieden.

    Ich sende was und es kommt was an
    Gruß Wasi...

Berechtigungen

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

Solar Speicher und Akkus Tests