Hat denn gar keiner irgendeine Vermutung zu meinem Problem???
Ich habe es jetzt weiter versucht, aber die CC startet immer wieder neu wenn ich den mp3 Player einschalte. Auch Spekulationen würden ja weiterhelfen.
mfg
Hallo,
ich habe ein Problem mit meinem CControl. An diesem habe ich über die serielle Schnittstelle einen fertigen MP3 Player angeschlossen (Ist eine erweiterung für ein handy gewesen). Das Programm im CControl gibt nur die Daten, die über diese serielle Schnittstelle reinkommen wieder aus (nicht über die gleiche serielle Schnittstelle), mehr nicht. Immer wenn ich dem Player einschalte (also mit Strom versorge), startet das Programm des CControl neu (bzw. soppt es ohne den Autostartjumper), soll es aber nicht. Aber warum? Im dem Programm ist eine Endlosschleife drin, das kommt auch nie zum Ende, solange ich den Player nicht einschalte.
Gibt es vielleicht ein Kommando, das man per serieller Schnittstelle ausgibt, um das CControl neu zu starten?
Ich dachte dann es liegt vielleicht an der Elektronik und habe beide Geräte mit einem Optokoppler verbunden, aber das hat nicht geholfen. Könnte aber mangels meiner Erfahrung trotzdem sein.
Besten Dank schon mal.
Mirko
Hat denn gar keiner irgendeine Vermutung zu meinem Problem???
Ich habe es jetzt weiter versucht, aber die CC startet immer wieder neu wenn ich den mp3 Player einschalte. Auch Spekulationen würden ja weiterhelfen.
mfg
Läuft das Programm nach dem ungewollten Neustart denn so, wie es soll?
Gruß,
askazo
Ja dann läuft es so wie es soll. In dem Programm ist ja auch nur eine Ausgabe und daraufhin eine endlosschleife, in der auch nur eine Ausgabe gamacht wird, mehr nicht.
Woran erkennst Du denn, das die CC neustartet?
Und sobald der MP3 Player einmal läuft, kommt es nicht mehr zum Neustart?
Meine Vermutung wäre ein eingeschalteter Interrupt ohne passende Interrupt-Routine gewesen. Aber wenn das Programm nach dem Neustart problemlos läuft, kann es das eigentlich nicht sein.
Ansonsten fallen mir als Gründe für einen Neustart nur der Watchdog-Timer oder eine einbrechende Versorgungsspannung ein. Hängen MP3-Player und CC an der selben Versorgungsspannung?
askazo
Das programm sieht etwa so aus:
ausgabe "A"
do
augabe "B"
loop
Jetzt läuft das prog los, gibt erst ein "A" dann viele "B"s aus und dann schalte ich den mp3 player zu, dann wird ein "A" ausgegeben und wieder "B"s. Also muß das cc ja neu starten.
Nein, wenn der player an ist läuft alles, bzw das prog gibt kein "A" aus.
Das mit dem spannungseinbruch dachte ich auch schon, aber ich hab das gesamte dann an ein computernetzteil gehangen, das müßte ja genügend strom geben. Außerdem passiert das nicht wenn die datenleitung zwischen cc und mp3player nicht verbunden ist.
Übrigens wird das programm einfach beendet, wenn ich den reset-jumper nicht gesetzt habe. Das hätte ich vielleicht noch erwähnen sollen.
Noch eine idee? Ich sehe mir das mit dem interrupt und watchdog mal genauer an.
Danke schonmal.
Schau doch mal an was beim Einschalten des Players passiert.
-Mit einem Terminalprogramm schauen ob da Zeichen kommen
-Wenn Du einen Oszi hast, schauen ob da Spannungspitzen zwischen Gnd der CC und Gnd von Player sind.
-Vielleicht testest Du das ganze ohne Kommunikation. Also einfaches Programm ohne Schnittstellen-Befehle. Dann verbindest Du Player und CC. Wenn die CC dann einen Neustart macht, liegt es mit Sicherheit an einem Spannungs-Potenzialproblem oder Spannungsspitzenproblem.
Ich habe für den Computer auch schon ein programm geschrieben, mit dem ich die daten des players aufrufen kann, das funktioniert. (Auch mit einem Terminalprogramm)
Es ist auch nicht nötig den player irgendwelche daten zu schicken, er braucht nur an eine serielle schnittstelle angesteckt sein. Sind die datenkabel nicht verbunden, geht auch der player nicht.
Ich habe es auch ohne datenkommunikation versucht. Das programm, das ich oben geschrieben habe, schickt ja überhaupt keine daten an den player. Ich kenne das protokoll einer seriellen übertragung nicht so genau, da wird ja bestimmt schon was geschickt, ohne das ich das macht (bitratenanpassung oder irgendwas).
Ich versuche es nochmal mit den optokopplern, wenn ich die in beiden richtungen in die serielle verbindung hänge, müßten doch das spannungsspitzenproblem gelöst werden (falls es besteht)?
PS: Ich habe leider kein oszi.
So, ich finde das Problem nicht. Ich hatte jetzt an beiden Datenkabeln Optokoppler, um spannungsspitzen zu umgehen. Ich poste mal den Quelltext vielleicht fällt irgendjemanden was auf, obwohl ich es mit verschiedensten algorithmen versucht habe. Es werden immer wieder "W"'s ausgegeben, auch immer wenn der player etwas sendet. Das programm nutzt zur ausgabe den 2. serielle schnittstelle, deren ansteuerung ich aus einem beispiel von conrad kopiert habe.
Code:'-------------------------- '------ I/O PORTS --------- '-------------------------- define TXPORT port[1] define RXPORT port[2] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- '- FIXED INTERFACE BUFFER - define SERIALBYTE byte[1] define BAUDRATE byte[2] define BYTEPOS byte[3] '-- SYSTEM ROUTINEN ------- CONST PUTBYTE= FD30h CONST GETBYTE= FD03h CONST GETSTREAM =FD07h CONST GETBAUD= FD50h 'eigene define b1 As Byte define rb As Byte TXPORT=on BAUDRATE=43 'für 2. ser Schnittst. = 19200baud Baud 1 'für stand. ser Schnittst. = 19200baud 'SYS GETBYTE SERIALBYTE = 87 'W SYS PUTBYTE SERIALBYTE = 87 'W SYS PUTBYTE #LOOP If RXD Then Get b1 SERIALBYTE = b1 SYS PUTBYTE SERIALBYTE = 58 ': SYS PUTBYTE Else End If goto LOOP '--------- GERÄTETREIBER LADEN ---------- syscode "M20_UTIL11_PAGE0.s19"
Lesezeichen