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







Zitieren
Lesezeichen