µC bleibt stehen sobald per PC ein Comport geöffnet wird, Bootloader schuld?

Gast #3246538
Lesenswert?

Hallo Leute :)

Wie schon im Betreff beschrieben.

Ich benutze einen ATMega88 mit Bascom.
Er tut nix anderes als einen String über uart(emuliert über usb) an den 
Pc zu senden, das klappt wunderbar, Hterm meldet den korrekten string.

Doch wenn ich über Putty (Oder ein eigenes Programm in c++ geschrieben) 
eben jenen Comport öffne bleibt der Controller stehen, bzw sendet noch 
den string zuende der eben geschickt wird und pausiert dann die "loop 
forever" bis der Port geschlossen wird.

Ich hoffe jemand weis was, danke schonmal im Vorraus :)

Gruß Sanchez
Gast #3246576
Lesenswert?

Sanchez schrieb:
> Doch wenn ich über Putty (Oder ein eigenes Programm in c++ geschrieben)
> eben jenen Comport öffne bleibt der Controller stehen, bzw sendet noch
> den string zuende der eben geschickt wird und pausiert dann die "loop
> forever" bis der Port geschlossen wird.

Dann steht zu vermuten, dass in Putty der Handshake eingeschaltet ist. 
Benutzt dein µC-Programm vielleicht Softwarehandshake und bekommt von 
Putty ein XOff?
Gast #3246928
Lesenswert?

Hallo,

du hast grundsätzlich 3 anerkannte Möglichkeiten
1.) eine RS232 Kommunikation ohne Handshake oder
2.) eine RS232 Kommunikation mit Handshake (mit RTS/CTS und DTR/DSR)
3.) eine Kommunikation mit Software-Handshake mittels XON/XOFF

In allen Fällen müssen deine Programme (auf PC-Seite und uC-Seite) das 
berücksichtigen und das gleiche Verhalten an den Tag legen. Mischen (das 
hast du jetzt) funktioniert nicht.

Mach dich schlau wie  RTS/CTS und DTR/DSR arbeiten

http://de.wikipedia.org/wiki/RS232
(Tabelle ganz unten)

und passe deine Programme an!!!
(Firma: TravelRec.) Persönliche Seite #3247655
Lesenswert?

Sanchez schrieb:
> Habe nun rausgefunden das der µC einen Reset durchführt sobald DTR aktiv
> wird.

Dann pass doch Dein Programm so an, dass das nicht passiert. Oder ist es 
nicht Dein Programm? Ich würde vielleicht auf einen nicht durch eine ISR 
abgefangenen Interrupt tippen. Ist aber nur so eine Vermutung.
Gast #3247916
Lesenswert?

Sanchez schrieb:
> Habe nun rausgefunden das der µC einen Reset durchführt sobald DTR aktiv
> wird.

Das kann ja Absicht sein, irgendwie muss man den µC anhalten bzw. in den 
Bootloader schicken können, sonst könnte man ihn nicht programmieren. 
Also Schalter oder Jumper oder ein externes Signal.

Wenn du die Software nicht ändern kannst, einfach die DTR-Leitung durch 
einen Schalter unterbrechen.

Gruss Reinhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren