PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme beim Senden über RS232



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

peterfido
11.02.2008, 21:01
Wenn Du mit Flusskontrolle arbeiten möchtest, dann muss diese von allen Geräten unterstützt werden. Beim AVR kann ich da nix entdecken. Versuch mal folgendes:

Private Sub senden_Click()
MSComm1.RTSEnable = False
MSComm1.Output = Chr(49) + Chr(13)
MSComm1.RTSEnable = True
End Sub

Feiler
13.02.2008, 17:43
Servus!

Hab deinen Vorschlag eingebaut und siehe da, es klappt :)

Ich hätte noch eine Frage in Sachen String: Wie lang kann ich den String im AVR maximal definieren? Ich habe bis jetzt die Aussagen max. 70Stellen/Bytes und 254Stellen/Bytes gefunden...

Gruß, Sven