Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> ... > > Hallo André! > > > > Vielen Dank für Deine Ausführungen. Du hast es genau erfasst. Ich nutze den I²C-Bus um diverse > > Hausautomatisierung zu steuern. Hierbei sind Taster an einem PCF8574 angeschlossen. > > Logischerweise wird ein Taster nur kurz betätigt (ca. 20-100 ms). Um mit dem Programm nicht ständig > > über den I²C-Bus den PCF8574 pollen zu müssen, würde ich gerne Ereignisgesteuert den PFC auslesen, > > wenn dieser seinen Interruptausgang verändert. > > > > Für Ideen, Tips oder Beispiele wäre ich sehr dankbar. > > Würdest Du den Port der C-Control Station ständig abfragen? > > > > Hi, > ich habe mich ein wenig experimentell mit der Sache beschäftigt, da ich diverse > Haussteuerungs Tasks damit erledigen will. > > Der Trick besteht darinn, die INT Leitung des 8574 mit einem PullUp (zb. 10k) auf High zu halten, > und diese an einen der 5 interupttauglichen Ports der Station zu führen. > > Ich habe dann 2 Threads gebaut: > - einer wartet in einer Loop mittels Wait auf ein Lo an diesem Port und tut nichts weiter als > den 2. Thread mit Resume wieder aufzuwecken > - der zweite läuft ebenfalls in einer Loop, an deren Ende ein Halt steht. Wird er resumed, dann > gehts wieder an den Anfang der Loop, und in einer inneren Loop werden alle bekannten 8574 > abgeklappert und ihr Wert mit den gespeicherten letzten verglichen, und gegebenenfalls eben > eine Aktion gesetzt. > > Beispiel Code, auszugsweise: > <code> > thread pcfmain > { > wait (initdone==1); > run pcfmon; > loop > { > wait !ports.get(15); > resume pcfmon; > } > } > > thread pcfmon > { > byte oo, i ; > > loop > { > for i = 0 ... 15 > { > if PCFPresent[i] == 1 > { > oo = pcf.in(i); > if oo != PCFLast[i] > { > // hier kommt die Aktion > // .... > // und am Ende merken wir uns noch den neuen Wert > PCFLast[i] = oo; > } > } > } > halt; > } > } > </code> > > Ich schicke gerne das ganze Test-Prog via PM zu, möchte es hier in seinem Teststatus nicht > so public machen. Wahrscheinlich geht es ein wenig schneller, wenn man die 2 Threads in > einem zusammenfaßt, als "alter Procedurealer " splitte ich aber lieber auf. ;-) > > lg, Franz
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB