-         

Ergebnis 1 bis 9 von 9

Thema: Ungewollter Neustart (CC 1 V2.0)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    6

    Ungewollter Neustart (CC 1 V2.0)

    Anzeige

    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

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    6
    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

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    Läuft das Programm nach dem ungewollten Neustart denn so, wie es soll?

    Gruß,
    askazo

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    6
    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.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    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

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    6
    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.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.09.2004
    Ort
    Schwabenland
    Beiträge
    156
    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.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    6
    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.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    6
    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"

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •