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