hallo zusammen, ich habe mir auf einer lochrasterplatine eine versuchsschaltung mit einem max232, einem attiny2313 und 2 leds gebastlt http://www.mikrocontroller.net/wikifiles/e/ee/AVR-RS232.png nach dem plan hab ich den max beschalten vom pc zum board benutze ich einen usb-seriell adapter wenn ich jetzt in bascom mit dem terminalemulator den port öffne, liest er die zahlen (zB 1,2,3,4,5,6,7,8,9,0) richtig aus wenn ich jetzt jedoch in VB6 und folgendem code-: [code] Private Sub Form_Load() txtDisplay.Text = "" 'Enable Port MSComm1.PortOpen = True 'Open port End Sub Private Sub tmrTimer_Timer() txtDisplay.Text = MSComm1.Input End Sub [/ code] Bascom code: [basic] $regfile = "attiny2313.dat" $crystal = 4000000 $hwstack = 32 $swstack = 8 $framesize = 16 $baud = 9600 Config Clockdiv = 2 Config Portb.0 = Output Portb.0 = 1 Dim X As Word X = 0 Do Portb.0 = 0 Waitms 500 Portb.0 = 1 X = X + 1 Waitms 500 Print X Loop End [/basic] auslesen will kommt immer "error reading comm device" obwohl es wie gesagt in bascom geht. ich benutze K E I N E N Quarz!!! ist auf der endgültigen platine kein platz mehr! kann mir jmd helfen bitte?! LG christoph
Versuchs erst mal ohne den Controller mit nem Hyperterm und Brücke Pin 2/3. an der rs232. Dann solltest du ein Echo erhalten. Tipp 0 Modem Kabel Der Fehler liegt eher an dem Konstrukt USB seriell und deine Kabelbelegung.
Christoph S. schrieb: > ich benutze K E I N E N Quarz!!! Und wiso erzaehlst Du dem Compiler dann das: Christoph S. schrieb: > $crystal = 4000000 P.S. Groß- und Kleinschreibung verwenden wendelsberg
@Till: das mit der Brücke habe ich versucht. Geht aber auch nicht! und das nullmodemkabel hab ich auch schon versucht Ich MUSS einen USB adapter verwenden, da das board dann an einem acer aspire one funktionieren muss! @wendelsberg: was müsste ich ihm denn sagen bei $crystal ? LG und danke
Na wenn bei Brückung kein Echo kommt ,liegt der Fehler nicht am AVR. Ist das zu schwer für Dich zu verstehen?
wendelsberg schrieb: > Christoph S. schrieb: >> ich benutze K E I N E N Quarz!!! > > Und wiso erzaehlst Du dem Compiler dann das: > > Christoph S. schrieb: >> $crystal = 4000000 Weil Bascom auch ohne Externen Quarz wissen muss wie schnell der Avr arbeitet. Ist aber die angabe $crystal = 4000000 richtig ? Im originalzustand ist ein 2313 auf 1 Mhz eingestellt. Lade dir mal ein simples Terminalprogramm runter zb Htherm. Damit kannst du Ohne Visual Basic schonmal die Rs232 testen. http://www.heise.de/download/hterm.html Wenn es damit und der Brücke pin 2und3 am Usb2rs232 noch kein Echo gibt hast du ein anderes Problem Treiber z.b.
hey mit der brücke bekomme ich kein echo mit einem terminalprog schon ( iwelche undefinierbaren buchstaben zahl kombinationen). (https://sites.google.com/site/terminalbpp/) ok ich stelle ihn mal auf 1mhz wieder um.
Du scheinst es nicht zu begreifen. Till hat Dir doch schon dein Problem erläutert. Du suchst an der völlig falschen Ecke. Beende erst mal die Baustelle PC/ rs232
Nochmal langsam. Dein Avr schaltest du erstml aus und machst ihn von deinem Comport ab. Dann alle Programme welche den Com stören beenden. Terminalprogramm öffnen. Am usb com adapter pin 2 und 3 verbinden Im terminal programm etwas senden und gucken ob du genau das auch im Terminalprogramm zurückbekommst. Nur so kannst du testen ob dein Com wirklich arbeitet. Wenn du dann da dein Echo bekommst machst du den gleichen test mit dem Max232 am comport nochmal( dann bitte die verbindung txd rxd nach dem )max232 um zu prüfen ob auch dieser arbeitet. Wenn auch das klappt kannst du deinen Avr anschlißen und gucken ob dieser arbeitet.
Christoph S. schrieb: > [code] > Private Sub Form_Load() > txtDisplay.Text = "" 'Enable Port > MSComm1.PortOpen = True 'Open port > End Sub > > Private Sub tmrTimer_Timer() > txtDisplay.Text = MSComm1.Input > End Sub > > [/ code] An welcher Stelle schmeißt Visual Basic den Error? Beim Öffnen des Ports oder beim Auslesen des Empfangspuffers? Im Falle von letzterem gibt (gab?) es bei VB6 mal Probleme mit nicht von Windows bereitgestellten RS232-Treibern, eventuell trifft das auch auf deinen USB-Adapter zu. Hier kann es zu der von dir beschriebenen Fehlermeldung kommen (Error 8020 bzw. 'error reading comm device') wenn versucht wird den Empfangspuffer mit 'Input' auszulesen, dieser aber leer ist.
hey Er schimpft beim öffnen des empfangsbuffers. wie kann ich rausfinden, dass das mein problem ist? also mit einem Backloop-Stecker hab ich gerade versucht, funktioniert es einwandfrei! Also @Till es liegt nicht am Port sondern an VB oder dem µC ach ja fast vergessen, so sieht das ausgegebene aus :"71 79 0D 0A" Lg
:
Bearbeitet durch User
Christoph S. schrieb: > Er schimpft beim öffnen des empfangsbuffers. > wie kann ich rausfinden, dass das mein problem ist? Kann ich dir leider auch nicht sagen, mich hat das ganze nur an nen ollen Artikel von Microsoft erinnert (http://support.microsoft.com/kb/318784/en-us) - scheint ja auch irgendwie zu passen. Leider habe ich VB6 nie genutzt, ich frage mich auch grad ob es wirklich so sinnvoll ist eine Sprache die seit 15 Jahren nicht mehr gepflegt (ist doch irgendwann 1998 rausgekommen oder ?) wird zu verwenden. Kannst du vor Verwendung der .Input-Methode nicht irgendwie prüfen ob Bytes im Puffer sind und dann nur Lesen wenn auch wirklich was da ist? Damit könnte man zumindest den Fehler aus dem Microsoft-Artikel ausschließen. Ansonsten vergrößer doch mal den Zeitwert des Timers mal auf z.B. das doppelte dessen was du im µC wartest.
:
Bearbeitet durch User
Hallo Christoph, schau mal hier nach: http://www.activevb.de/startseite/index.html Besonderst: http://www.activevb.de/tutorials/tut_com/com.html Ausreichend erklärt und laufähig. Hans
Flow control disablen (property com Objekt) oder schnittstellenpins richtig setzen (0-Modem)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.