Re: Compilerlogik unlogisch? Kategorie: Programmierung (von reneforster - 13.01.2009 19:46) | ||
Als Antwort auf Re: Compilerlogik unlogisch? von Detlef - 10.01.2009 11:40 | ||
| ||
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 > > { > > Sensor[pos] = (modul*15)+1-1+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 > > 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 | ||
Antwort schreiben Antworten: |