Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Hostmode starten per RS232 Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 6.09.2006 0:04)
 Als Antwort auf Software Reset der OM von Jens - 5.09.2006 22:38
Dietmar nutzt:  CC1-M-Unit V1.1, Advanced CC1-Unit, Open-Micro, Open-Mini, Open-Mini M-Unit, Open-Mini Station, B-Control, sonstige
Hallo Jens!

Eigentlich ist "Softwarereset" nicht die richtige Bezeichnung für das, was Du vorhast. Du möchtest ein laufendes BASIC-Programm unterbrechen, sobald der PC ein Zeichen über die serielle Schnittstelle (RS232) zur OM sendet.

Ich würde dafür einfach die IRQ-Fähigkeit der OM-Kontroller nutzen. Sobald IRQEN im CONFIG2-Register des Kontrollers gesetzt wird, startet üblicherweise die BASIC-Interruptroutine, nachdem der Kontroller am IRQ-Pin (gleich PORT[3]) eine fallende Flanke detektiert hat. Das paßt sehr gut zum RS232-Signal an PORT[1]. Es ist HIGH, bis ein Stopbit gesendet wird. Man muß also einfach ein passendes Programm in die OM laden und anschließend PORT[1] mit PORT[3] verbinden. Der Hostmodeschalter muß natürlich immer auf "RUN" stehen, es muß also an PORT[3] HIGH-Potential liegen, sonst werden beide Ports auf LOW gesetzt. Die BASIC-Interruptroutine kann man sich in diesem Fall sogar sparen. Du möchtest ja nur herausfinden, ob ein IRQ-Interrupt stattgefunden hat. Dafür kann man die interne Variable IrqReq abfragen.

Ich habe es gerade mit meinem PE-Board ausgetestet: Wenn ich das folgende Programm auf die Open-Micro lade und starte und anschließend PORT[3] mit PORT[1] direkt verbinde, kann ich die OM in den Hostmodus versetzen, wenn ich ein beliebiges Zeichen mittels Terminalprogramm über die serielle Schnittstelle vom PC zur OM sende. Das Zeichen wird von der OM verworfen. Anschließend kann ich ein neues Programm übertragen und die OM über die serielle Schnittstelle starten, ohne die Verbindung zwischen PORT[3] und PORT[1] zu entfernen. Nachdem ich die beiden Ports verbinde, messe ich während der Programmausführung eine Spannung von 4,06 Volt.

INCLUDE "om.def"

DIM led PORT[2]

'IRQEN im CONFIG2-Register des Kontrollers setzen. Das Register laesst sich
'nur einmal nach jedem Reset beschreiben ("write once"), nachfolgendes Be-
'schreiben wird ignoriert.

CONFIG2=&b01000000

'Durch das Einschalten evt. ausgeloeste Interrupt-Anforderungen loeschen.

IrqReq=OFF

'--- Das Hauptprogramm ------------------------------------------------------

'Der Kontroller wartet, bis er am IRQ-Eingang (das ist der gleiche Pin
'wie PTA2 oder PORT[3]) eine negative Flanke detektiert.

led=OFF

WHILE NOT IrqReq
  PAUSE 10
  TOG led
WEND

PRINT "Ich starte den Hostmodus."

End2Host=ON
END

Viele Grüße
Dietmar

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Re: Hostmode starten per RS232 (von Jens - 6.09.2006 9:31)
    Re: Hostmode starten per RS232 (von Dietmar - 6.09.2006 15:36)
        Re: Hostmode starten per RS232 (von Jens - 6.09.2006 19:48)