Feiler
11.02.2008, 17:37
Servus!
Nachdem ich mich jetzt schon seit Tagen durch das Forum und Google suche und bis jetzt keinen nennenswerten Erfolg hatte wollte ich hier um Hilfe bitten...
Mein Problem ist folgendes:
Ich habe mehrere AVRs (Mega16) über den RS485-Bus miteinander verbunden. Damit ich den AVRs vom PC Daten senden kann habe ich einen RS232-RS485 Wandler gebaut.
Die Kommunikation zwischen den AVRs funktioniert ohne Probleme (Kann Daten zwischen den AVRs senden und empfangen).
Nur die Kommunikation zum PC macht Probleme. Ich kann am PC zwar am Terminal von BASCOM empfangen, nur wenn ich Daten zu den AVRs sende funktioniert nichts.
Das PC Programm zum senden (Visual Basic 6):
Private Sub verbinden_Click()
With MSComm1
.CommPort = 4
.Settings = "9600,N,8,1"
.PortOpen = True
.RTSEnable = True
End With
End Sub
Private Sub trennen_Click()
MSComm1.PortOpen = False
End Sub
Private Sub senden_Click()
MSComm1.Output = Chr(49) + Chr(13)
End Sub
und das Programm im AVR:
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 9600
'Port A
Config Porta = Input
Porta.0 = 1
Config Portc.7 = Output
'Port D
Config Portd = Output
Rs485 Alias Portd.2
Rs485 = 0
Dim Zeichen As Byte
Zeichen = 0
Portc.7 = 1
Do
Zeichen = Inkey()
If Zeichen > 0 Then
Portc.7 = 0
Zeichen = 0
End If
Loop
Gruß, Sven
Nachdem ich mich jetzt schon seit Tagen durch das Forum und Google suche und bis jetzt keinen nennenswerten Erfolg hatte wollte ich hier um Hilfe bitten...
Mein Problem ist folgendes:
Ich habe mehrere AVRs (Mega16) über den RS485-Bus miteinander verbunden. Damit ich den AVRs vom PC Daten senden kann habe ich einen RS232-RS485 Wandler gebaut.
Die Kommunikation zwischen den AVRs funktioniert ohne Probleme (Kann Daten zwischen den AVRs senden und empfangen).
Nur die Kommunikation zum PC macht Probleme. Ich kann am PC zwar am Terminal von BASCOM empfangen, nur wenn ich Daten zu den AVRs sende funktioniert nichts.
Das PC Programm zum senden (Visual Basic 6):
Private Sub verbinden_Click()
With MSComm1
.CommPort = 4
.Settings = "9600,N,8,1"
.PortOpen = True
.RTSEnable = True
End With
End Sub
Private Sub trennen_Click()
MSComm1.PortOpen = False
End Sub
Private Sub senden_Click()
MSComm1.Output = Chr(49) + Chr(13)
End Sub
und das Programm im AVR:
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 9600
'Port A
Config Porta = Input
Porta.0 = 1
Config Portc.7 = Output
'Port D
Config Portd = Output
Rs485 Alias Portd.2
Rs485 = 0
Dim Zeichen As Byte
Zeichen = 0
Portc.7 = 1
Do
Zeichen = Inkey()
If Zeichen > 0 Then
Portc.7 = 0
Zeichen = 0
End If
Loop
Gruß, Sven