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 nochmal, > > ergänzend noch folgendes. Auf die Lösung mit dem +1-1 bin ich gekommen, weil ich in der selben > Funktion den gleichen Code für einen anderen Modultyp verwende. Hier liegen die Eingänge immer > um drei höher, darum +3. Dieser Typ wurde immer problemlos gelesen, auch das 0-te Modul. Die > einzige Unterscheidung war das +3. Also hatte ich +1-1 auch oben eingefügt, und siehe da es > funktionierte.... > > > > > Globale Variable: > > byte Sensor[MaxEing*2]; // Sensorvorrat, Anzahl Eingänge pro Sequenz > > > > function readHaus(int modueb, byte tog) returns byte // (Moduluebersicht und Toggle) > > { > > int modul, bit, eingang; > > byte pos; > > modul=0; > > pos=0; > > > > if tog pos=MaxEing; > > > > while modueb // ... solange es nichtabgefragte Module gibt > > { > > if modueb%2 // ... gucken, ob das nächste da ist > > { > > eingang=dwmodule.getDIMM(modul); // ... dann deren Eingänge abfragen > > if eingang > > if eingang !=dwmodule.getDIMM(modul) // Sicherheitsabfrage nur wenn > > eingang=0; // positives Eingangssignal > > > > bit=0; > > > > while eingang // ... solange irgendwo ein Bit "high" ist > > { > > if eingang%2 // ... gucken ob das nächste "high" ist > > { > > <b> Sensor[pos] = (modul*15)+1-1+bit;</b> > > if pos < (MaxEing*(1+tog)) pos=pos+1; > > } > > bit=bit+1; // ... nächstes bit abfragen > > eingang = eingang shr 1; // ... nächsten Eingang abfragen > > } > > } > > modueb=modueb shr 1; // ... nächstes Modul abfragen > > if modueb%2 // ... gucken, ob das nächste da ist > > { > > eingang=dwmodule.getDigi(modul); // ... dann deren Eingänge abfragen > > if eingang > > if eingang !=dwmodule.getDigi(modul) // Sicherheitsabfrage nur wenn > > eingang=0; // positives Eingangssignal > > > > bit=0; > > > > while eingang // ... solange irgendwo ein Bit "high" ist > > { > > if eingang%2 // ... gucken ob das nächste "high" ist > > { > > Sensor[pos] = modul*15+3+bit; > > if pos < (MaxEing*(1+tog)) pos=pos+1; > > } > > bit=bit+1; // ... nächstes bit abfragen > > eingang = eingang shr 1; // ... nächsten Eingang abfragen > > } > > } > > modueb=modueb shr 1; // ... nächstes Modul abfragen > > modul=modul+1; // ... nächste Modulreihe befragen > > } > > Sensor[pos]=LEER; // ... Endwert in Sensor schreiben > > } > >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB