Für dieses Forum muß Javascript im Browser aktiviert werden!
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 > > } > >