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)