Hallo !
Ich habe das Problem wenn ich einen String von meiner PC-RS232 Schnittstelle an meinen Atmega32 sende immer nur das 1. und manchmal auch das 2. Zeichen korrekt übertragen wird... Der Rest ist immer Müll..
Das Empfangen der Daten vom µC auf dem PC funktioniert ohne Probleme!
Wenn ich die Zeichen aber einzeln übertrage und dazwischen jeweils eine Millisekunde Zeit lasse dann werden alle Zeichen ordnungsgemäß übertragen.
Vom PC aus sende ich die Daten mit einem Visual Basic Programm.
Hier der VB6 Source:
Code:Private Sub Command1_Click() ' Call ComAusgabe("MaXX") ‚<- funz weil 1ms pause zw jedem Zeichen… MSComm1.Output = "MaXX" ‘<-funzt nicht es kommt nur „Ma…ý“ an End Sub Private Sub ComAusgabe(Zeile As String) Dim Count As Integer For Count = 1 To Len(Zeile) Sleep 1 MSComm1.Output = Mid(Zeile, Count, 1) Next Count End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.PortOpen = True MSComm1.RThreshold = 1 MSComm1.SThreshold = 1 MSComm1.InputLen = 0 End Sub Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent Case comOverrun: MsgBox "Datenverlust!" Case comRxOver: MsgBox "Datenverlust!" Case comEvReceive: Text = Text & MSComm1.Input End Select code.SetFocus code.Text = code.Text & Text End Sub Private Sub Form_Close() MSComm1.PortOpen = False End Sub
Bascom Programm
Code:'------------[Meta]------------------------------------------------------------- $regfile = "m32def.dat" $crystal = 11592000 $hwstack = 32 $swstack = 10 '$framesize = 40 $baud = 9600 '------------[Lib für glcdKS108]------------------------------------------------ $lib "glcdKS108.lbx" '------------[GLCD Config]------------------------------------------------------ Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Porta , Ce = 1 , Ce2 = 2 , Cd = 3 , Rd = 4 , Reset = 0 , Enable = 5 Cls Setfont Font8x8 On Urxc Onrxd Dim I As Byte Dim S As String * 10 Ddrd.5 = 1 Enable Urxc Enable Interrupts Main: Portd.5 = Not Portd.5 Waitms 1 Goto Main Onrxd: I = Udr Udr = I S = S + Chr(i) Cls Lcdat 1 , 1 , S Return '------------[Ende]------------------------------------------------------------- End $include "font8x8.font"
Gibt es eine möglichkeit den µC zu fragen ob er empfangsbereit ist o.ä?
Ich wäre für jede Hilfe Dankbar!
MfG MaXX
PS: Ich bemerke gerade dass bei längeren Strings die Wartezeit von 1ms nicht mehr ausreicht







Zitieren

Lesezeichen