Hallo,
Bin auf der Suche nach Unterstützung bei meinem Problem und hoffe hier fündig zu werden. Ich logge einen meiner Stromzähler und benutze im Probebetrieb eine Variable, die sich bei Eintrete eines bestimmten Ereignisses um 1 erhöht und danach über den Serial Monitor ausgegeben wird. Dies funktioniert auch wunderbar bis ich den Monitor schließe und wieder öffne, meine Variable fängt dann wieder bei 1 a zu zählen. Hat dazu jemand eine Idee worin der Fehler liegt?
Schon mal Danke für Eure Unterstützung.
Sebastian
Hallo,
wahrscheinlich löst das Starten des Serial-Monitors einen Reset am Arduino aus. Teste das ganze mal mit einem anderen Terminal-Programm (ich benutze gerne HTerm).
Falls nicht, welcher Arduino, wie sieht Dein Sketch aus?
Gruß,
Ralf
Sadbi:
Serial Monitor ausgegeben wird. Dies funktioniert auch wunderbar bis ich den Monitor schließe und wieder öffne, meine Variable fängt dann wieder bei 1 a zu zählen. Hat dazu jemand eine Idee worin der Fehler liegt?
Das ist kein "Fehler", sondern das ist der "Auto-Reset".
Dein Board macht jedesmal beim Öffnen der seriellen Schnittstelle automatisch einen Reset und startet das Programm neu. Dies dient in erster Linie zum Hochladen von neuen Sketchen per Bootloader.
Wenn Du keinen automatischen Upload aus der Software heraus möchtest, kannst Du den Auto-Reset nach dem Upload Deines Sketches deaktivieren. Anleitungen existieren. Danach kannst Du dann aber entweder nur neue Sketche hochladen, wenn Du den Auto-Reset wieder aktivierst oder mit "manuellem Reset beim Upload".
Hallo,
wenn ich ein anderes Terminal starte, macht der Arduino wie beschrieben auch einen Reset.
Starte ich das Atmel Studio und öffne darin das Terminalfenster, macht der Arduino keinen Reset. Das kann ich unendlich wiederholen. Wir kommen damit zu der Frage, was wird hier anders gemacht beim öffnen?
Meines Verständnisses ist der Autoreset bei öffnen des Terminalfensters der IDE nicht für den Upload gedacht sondern um den Sketch von Anfang an zu starten.
Dies damit die Ausgabe auf das Terminal vollständig von Anfang an erfolgt. Das Terminal verwendet man oft zur Fehlersuche indem man im Sketch Texte bzw Variablenwerte an den PC sendet. Darum hat der Autoreset bei öffnen des Terrminalfensters durchaus seine Berechtigung.
Grüße Uwe
Hallo,
kann es demnach sein, dass die IDE einen Befehl mitschickt um den µC zu reseten? Der USB<>RS232 Umsetzer ist ja auch ein µC, der könnte dafür programmiert sein, für so ein Feature.
Hallo,
das hatte ich befürchtet, funktioniert es mit putty? Ich werde es einmal testen. Vielen Dank,
Sebastian
PS: Melde mich hier wenn ich getestet habe.
Hallo,
putty resetet bei mir den Arduino auch. Dann stimmt die Annahme von oben schon nicht mehr. Dann wäre die Frage was macht das Terminal im Atmel Studio anders. Da kann man schlecht reinschauen.
Edit:
HTerm funktioniert. Hab da noch die 0.8.1 beta von früher. Also liegt es bestimmt nur an einer Einstellung des Verbindungaufbaus.
Edit2:
spiele ich mit den Reset Buttons in HTerm rum und disconnecte/connecte, dann reset sich der Arduino wie gewohnt. Warum ist mir nicht klar. Schließe ich HTerm und starte es wieder, läuft der Arduino wieder ohne Reset weiter. Vielleicht hilft Dir das ja. HTerm - der-hammer
Der Serial Monitor setzt einfach DTR Low. Und die Leitung ist mit Reset verbunden. Ganz simpel.
Wenn man eine Software hat in der man das einstellen kann, sollte man auch nichts an der Hardware ändern müssen. Ich habe das allerdings in C# probiert und da hat es nicht richtig geklappt.
Doc_Arduino:
Hallo,kann es demnach sein, dass die IDE einen Befehl mitschickt um den µC zu reseten? Der USB<>RS232 Umsetzer ist ja auch ein µC, der könnte dafür programmiert sein, für so ein Feature.
Ja. Beim FT232 der älteren Arduino bzw beim ATmega8U2 bzw ATmega16U2 der neueren Arduino ist das das DTR Signal der Seriellen Schnittstelle zuständig für einen Reset.
Grüße Uwe
Hallo,
aha. In einem anderen Terminal, was bei mir nur den Namen Terminal.exe hat ohne weitere Info woher, kann man einzelne Haken setzen für DTR, RTS, TXD usw. Damit kann man das schön nachvollziehen und beeinflussen. Wieder etwas nebenbei gelernt. ![]()
Doc_Arduino:
kann man einzelne Haken setzen für DTR, RTS, TXD usw. Damit kann man das schön nachvollziehen und beeinflussen.
HTerm hat Buttons zum gezielten Ein- oder Ausschalten von DTR und RTS.
Gruß,
Ralf
Hallo,
ich kann bei putty bei den Einstellungen "Serial" unter Flow Control DSR/DTR auswählen, dann kommt es anscheinend nicht zu einem Reset.
Hallo,
HTerm hat Buttons zum gezielten Ein- oder Ausschalten von DTR und RTS.
ahja, jetzt sehe ich die auch.
Unten im Bereich Inputs.
Würde sagen, Problem für Sadbi wäre gelöst. ![]()
Hallo,
joh, putty funktioniert jetzt bei mir auch ohne Reset. Dachte immer da muß "None" rein und wunderte mich das er dennoch immer Reset gemacht hat. Hab die Einstellung gleich gespeichert. Alles wird gut. ![]()