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 Detlef, > > > > Globale Variable: > > > byte Sensor[MaxEing*2]; // Sensorvorrat, Anzahl Eingänge pro Sequenz > > > > > > Eventuell liegt hier der Zusammenhang. Mach aus der globalen Variable Sensor doch mal ein Integer. > Vielleicht gibt es im Laufe der Berechnungen einen Überlauf, wenn die Vari als Byte deklariert ist. > > > > > > 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 > > > } > > > > > > > Rene