-
        

+ Antworten
Ergebnis 1 bis 3 von 3

Thema: Problem mit Portschaltung über RS232

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.03.2004
    Ort
    Bremen
    Alter
    26
    Beiträge
    308

    Problem mit Portschaltung über RS232

    Anzeige

    Hi!
    Ich möchte mit einem VB Programm auf dem Rechner, den Portzustand ändern: Also wenn ich zB. A51* an den AVR sende, soll PortA.5 = 1 sein.
    Außerdem wird der aktuelle Zustand aller Ports nach einer bestimmten Zeit regelmäßig an den PC gesendet. Aber irgendwie funzt das schalten der Ports nicht. Hoffe jemand kann mir Helfen,
    MfG
    Rasmus


    Code:
    $baud = 9600
    $crystal = 16000000
    Dim Typ(4) As Byte
    Dim Empfang As String * 20
    Dim Tmp As String * 2
    Dim Tmp1 As String * 1
    Dim Tmp2 As String * 1
    Dim Tmp3 As String * 1
    Dim Tmp3b As Byte
    Dim Tmp2i As Integer
    Declare Sub Sendstate()
    Declare Sub Changestate()
    Config Timer1 = Timer , Prescale = 1024
    On Timer1 State
    Enable Timer1
    On Urxc Getrs
    Enable Urxc
    Enable Interrupts
    
    
    
    Typ(1) = 1
    Typ(2) = 1
    Typ(3) = 1
    Typ(4) = 1
    If Typ(1) = 0 Then
    Config Porta = Input
    Else
    Config Porta = Output
    End If
    
    If Typ(2) = 0 Then
    Config Portb = Input
    Else
    Config Portb = Output
    End If
    
    If Typ(3) = 0 Then
    Config Portc = Input
    Else
    Config Portc = Output
    End If
    
    If Typ(4) = 0 Then
    Config Portd = Input
    Else
    Config Portd = Output
    End If
    
    Getrs:
    Tmp = Inkey()
    If Tmp = "*" Then
    Changestate
    End If
    Empfang = Empfang + Tmp
    Return
    
    State:
    Sendstate
    Return
    
    
    
    
    Sub Changestate()
    Tmp1 = Mid(empfang , 1 , 1)
    Tmp2 = Mid(empfang , 2 , 1)
    Tmp2i = Val(tmp2)
    Tmp3 = Mid(empfang , 3 , 1)
    Tmp3b = Val(tmp3)
    If Tmp1 = "A" Then
    Porta.tmp2i = Tmp3b
    Elseif Tmp1 = "B" Then
    Portb.tmp2i = Tmp3b
    Elseif Tmp1 = "C" Then
    Portc.tmp2i = Tmp3b
    Elseif Tmp1 = "D" Then
    Portd.tmp2i = Tmp3b
    End If
    Empfang = ""
    End Sub
    
    Sub Sendstate()
    Dim N As Integer
    For N = 0 To 7
    Print "A" +Str(n)+ Str(pina.n)
    Next
    For N = 0 To 7
    Print "B" + Str(n) + Str(pinb.n )
    Next
    For N = 0 To 7
    Print "C" + Str(n) + Str(pinc.n )
    Next
    For N = 0 To 7
    Print "D" + Str(n) + Str(pind.n )
    Next
    Print "*"
    End Sub

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Also ich kann kar kein VB, aber hier ist ein Programm in VB für den 2313 (den du wohl nicht verwendest), kannst dir das ja mal anschauen:

    Ferngesteuerter Atmel

    MFG Moritz

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.03.2004
    Ort
    Bremen
    Alter
    26
    Beiträge
    308
    Das VB Programm funzt ja schon einwandfrei, nur der Code für den ATMega32 läuft nicht,
    MfG
    Rasmus

+ Antworten

Berechtigungen

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