Ich habe mir einen Logik-Anne-Liesator nach:
http://antoniak.ep.com.pl/index.php?id=sla
allerdings mit eigenem Layout und ausschließlich mit DIL-Schaltkreisen
gebaut. Er funktioniert auch tadellos an meinem Müh- und Not(e)-Book.
(Pentium 3, 300Mhz, 128MB RAM, Windows XP)
Aber
An meinem "guten Rechner", hängt es beim Einlesen, jedoch nicht immer
und nicht an der gleichen Stelle. Ich vermute, daß ein anderes Programm
auch auf die COM-Schnittstelle zugreift und mir die Kommunikation
unterbricht.
Frage: Womit kann ich feststellen, wer oder was da auch noch auf der COM
"herumwürgt"?
MfG Paul
>Taugt der denn was?
Hm, was soll ich dazu sagen?! Gegenfrage: Taugt ein 10-er Schlüssel für
eine 3-er Schraube? :-))
Du mußt doch selbst wissen, was Du damit für Meßaufgaben lösen willst.
Es geht aus den Bildern auf der Seite des Autors hervor, was man damit
anstellen kann.
MfG Paul
Paul Baumann wrote:
> An meinem "guten Rechner", hängt es beim Einlesen, jedoch nicht immer> und nicht an der gleichen Stelle.
Hat der Rechner einen echten COM Port oder so einen USB COM Port? Diese
haben nämlich eine höhere Latenzzeit, was schonmal zu Fehlern führen
kann.
Versuch mal die Wartezeit auf die Daten zu vergrößern.
> Ich vermute, daß ein anderes Programm> auch auf die COM-Schnittstelle zugreift und mir die Kommunikation> unterbricht.
Sowas geht eigentlich nicht, wenn der Port schon offen ist, gibts einen
Fehler.
in VB6.0
setzt voraus das der µC eine Befehl erhalten kann
den er dem Host quittiert!
Sub OpenCom()
'COM Port suchen
Dim Port As Byte
For Port = 1 To 255
If ComOpenPort%(Port) = False Then
'Port wurde geöffnet
'NOP senden
SendeBefehl 0, 0, 0, 0
'Auf Antwort Warten USB Verzögerung
Call Sleep(90) 'win api
If MSComm1.InBufferCount > 0 Then
Dummy$ = MSComm1.Input
'Port setzen
cmbCom.ListIndex = Port - 1
Exit Sub
Else
'Anschluß schließen.
MSComm1.PortOpen = False
End If
End If
Next Port
'fals kein Port gefunden wurde dann Konbobox auf ListindeX = 0
MsgBox "Kann XYZ nicht finden!"
End Sub
Private Function ComOpenPort%(Port As Integer)
On Error Resume Next
' Anschluß schließen.
MSComm1.PortOpen = False
Err = 0 'letze Fehler löschen
MSComm1.CommPort = Port
If Err Then ComOpenPort% = True
' 9600 Baud, keine Parität, 8 Datenbits und 1 Stopbit
MSComm1.Settings = "19200,N,8,1"
' Steuerelement anweisen, daß es den gesammten
' Pufferinhalt lesen soll, wenn die Input-Eigenschaft
' verwendet wird.
MSComm1.InputLen = 0
' Anschluß öffnen.
MSComm1.PortOpen = True
If Err Then ComOpenPort% = True
End Function
Private Sub SendeBefehl(Befehl As Byte, Para1&, Para2&, Para3&)
On Error Resume Next
'Ausgabe String vorbereiten
MyOut$ = LTrim$(Str$(Befehl)) + vbCr + _
LTrim$(Str$(Para1&)) + vbCr + _
LTrim$(Str$(Para2&)) + vbCr + _
LTrim$(Str$(Para3&)) + vbCr
'und am geöffnetem Com Port ausgeben
MSComm1.Output = MyOut$
End Sub
@Alle
Fehler ist gefunden: Offenbar unterscheiden sich MAX232 von
unterschiedlichen Herstellern trotz gleicher Beschaltung laut Datenblatt
in ihrem Verhalten. Ich habe an dem "guten Rechner" (auch mit XP) ein
1 Meter langes RS232-Verlängerungskabel dran. (Voll beschaltet, selbst
gemessen), damit ich nicht immer hinter der Kiste herumkriechen muß.
An dem Not(e)-Book hing ich sowohl über einen USB/RS232-Wandler als auch
über das o.g. Kabel dran. Dort ging es immer.
Ich tauschte in der Not den MAX232 (Hersteller nicht zu erkennen, es
steht
nur die Typenbezeichnung drauf) gegen einen vom Onkel Maxim und siehe
da:
Auch an dem guten Rechner geht es nun über Com 1 und 2 und auch über den
USB-Wandler.
Ich danke Euch für die Ratschläge und Hinweise.
MfG Paul
Interessehalber,
kanns Du wieder (ohne großen Aufwand) auf den alten Zustand
zurücktauschen? Wenn ja, dann miß mal bitte die pos.(Pin2) und die
neg. >(Pin6) Spannung nach den Spannungskaskaden.
Carsten
Ja, das würde ich auch empfehlen. Man sollte solch einer eigenartigen
Situation immer genau auf den Grund gehen und nicht zufrieden sein, wenn
es irgendwann geht. Denn es könnte sein, daß es jetzt haarscharf gerade
so geht, aber bei 2 Grad Raumtemperatur mehr geht's vielleicht nicht
mehr ...
Günter
Habe ich schon ziemlich als Erstes gemacht...
Ich bin ein großer Fan von Fassungen, das hat sich hier wieder bewährt.
Es lagen in beiden Fällen ca. +9V beziehungsweise -9V gegen Masse an 2
und 6. Ich habe mich aber eben nochmal mit dem Grafen Oszillo an TXD
gehangen
und dort sieht man mit Entsetzen, daß der MAX232 von Maxim brettharte
Rechtecksignale herausbringt und der andere Kollege 232 sehr flache
Flanken liefert. Der wäre beim Fußball besser aufgehoben... ;-))
MfG Paul
Achso: Die Elkos haben 1uF (lt. Datenblatt) und sind auch richtig herum
drin. Ich habe schon etliche Apparate so aufgebaut (aber eben immer mit
Maxim-Schaltkreisen), die gingen immer auf Anhieb.
Fazit: Der 232 des anderen Herstellers war wohl als Kind schon anders.
dämlich grins
Paul
Ja, man kann das aus dem Bild nicht richtig erkennen. Ebenso erkennt
man,
daß ich scheinbar keine Stützkondensatoren verbaut habe. Doch: es sind
SMD-Kondensatoren Bauform 0805 für jeden der "Mitwirkenden" einer.
Nochmal Danke für die Hilfen
MfG Paul