Servus!
Und schon wieder habe ich ein Problem mit meinem AVR...
Das Problem ist folgendes: Ich möchte zu meinem AVR Daten senden - was auch soweit wunderbar funktioniert. Wenn ich nun die Daten auswerten möchte, sprich den Instr() Befehl nutzen will reagiert der Controller nicht mehr.
Ich habe testweise mal einen Eingang als Auswahlschalter programmiert, der mir die Variable ("Datenstring") füllt. Solange ich das mit diesem Eingang laufen lasse funktioniert alles wunderbar.
Erst wenn ich das ganze über den UART, sprich RS485/RS232 laufen lassen will macht der Controller nichts mehr. Woran könnte das liegen?
Hier noch der Quellcode (Beim Test mit dem Eingang habe ich vor Loop noch ein waitms 100 stehen gehabt):
Gruß, SvenCode:$regfile = "m16def.dat" $crystal = 16000000 $baud = 9600 'Port A Config Porta = Input Porta 0# = 1 'Setzt internen Pull-Up Porta 0.1 = 1 'Setzt internen Pull-Up Porta 0.2 = 1 'Setzt internen Pull-Up Porta 0.3 = 1 'Setzt internen Pull-Up Porta 0.4 = 1 'Setzt internen Pull-Up Porta 0.5 = 1 'Setzt internen Pull-Up Porta 0.6 = 1 'Setzt internen Pull-Up Porta 0.7 = 1 'Setzt internen Pull-Up 'Port B Config Portb.0 = Output Config Portb.1 = Output Config Portb.2 = Output Config Portb.3 = Output Config Portb.4 = Output 'Port C Config Portc = Output 'Port D Config Portd = Output 'LightCOM! Bus (RS485) Einstellen Rs485 Alias Portd.2 Rs485 = 0 'Karte ist als Slave geschalten 'Ports Benennen Ausg_1 Alias Portc.7 Ausg_2 Alias Portc.6 Ausg_3 Alias Portc.5 Ausg_4 Alias Portc.4 Ausg_5 Alias Portc.3 Ausg_6 Alias Portc.2 Ausg_7 Alias Portc.1 Ausg_8 Alias Portc.0 Ausg_9 Alias Portd.7 Ausg_10 Alias Portd.6 Ausg_11 Alias Portd.5 Ausg_12 Alias Portd.4 Ausg_13 Alias Portd.3 Ausg_14 Alias Portb.4 Ausg_15 Alias Portb.3 Ausg_16 Alias Portb.2 Ausg_17 Alias Portb.1 Ausg_18 Alias Portb.0 Adr_1 Alias Pina.7 Adr_2 Alias Pina.6 Adr_4 Alias Pina.5 Adr_8 Alias Pina.4 Adr_16 Alias Pina.3 Adr_32 Alias Pina.2 Adr_64 Alias Pina.1 Adr_128 Alias Pina.0 Ausg_1 = 1 Ausg_18 = 1 'Variablen zuweisen Dim Var_adresse As Integer 'Gibt die Adresse der Karte zurück Dim Empfzeichen As Byte Dim Datenstring As String * 7 Datenstring = "" Dim Var_sucheadresse As String * 4 Dim Var_posdaten As Integer Dim Var_pos As Integer Do 'Boardadresse abfragen Var_adresse = 0 Select Case Adr_1 'Adresse + 1 Case 0: Var_adresse = Var_adresse + 1 End Select Select Case Adr_2 'Adresse + 2 Case 0: Var_adresse = Var_adresse + 2 End Select Select Case Adr_4 'Adresse + 4 Case 0: Var_adresse = Var_adresse + 4 End Select Select Case Adr_8 'Adresse + 8 Case 0: Var_adresse = Var_adresse + 8 End Select Select Case Adr_16 'Adresse + 16 Case 0: Var_adresse = Var_adresse + 16 End Select Select Case Adr_32 'Adresse + 32 Case 0: Var_adresse = Var_adresse + 32 End Select Select Case Adr_64 'Adresse + 64 Case 0: Var_adresse = Var_adresse + 64 End Select Select Case Adr_128 'Adresse + 128 Case 0: Var_adresse = Var_adresse + 128 End Select 'Ausgänge auswerten Empfzeichen = Inkey() Select Case Empfzeichen Case 13: Select Case Var_adresse Case 0 To 9: Var_sucheadresse = "A00" + Str(Var_adresse) Case 10 To 99: Var_sucheadresse = "A0" + Str(Var_adresse) Case Is >= 100: Var_sucheadresse = "A" + Str(Var_adresse) End Select Var_posdaten = InStr(Datenstring, Var_sucheadresse) If Var_posdaten > 0 Then Var_pos = Var_posdaten + 4 If Mid(Datenstring, Var_pos, 3) = "Aus" Then Ausg_1 = 1 ElseIf Mid(Datenstring, Var_pos, 3) = "Ein" Then Ausg_1 = 0 End If End If Datenstring = "" Case Else: Datenstring = Datenstring + Chr(Empfzeichen) End Select Loop
Lesezeichen