Re: Konvertierung von 8 Bit in Zahl Kategorie: Programmierung (von Tom - 31.03.2004 8:00) | ||
Als Antwort auf Re: Konvertierung von 8 Bit in Zahl von Mathias S. - 30.03.2004 13:49 | ||
| ||
Hallo Mathias, nicht leichter als das, function bytetoarr(byte In ,byte out[],byte start) { // Bits bearbeiten out[start]= In and 1; out[start+1]= (In shr 1) and 1; out[start+2]= (In shr 2) and 1; out[start+3]= (In shr 3) and 1; out[start+4]= (In shr 4) and 1; out[start+5]= (In shr 5) and 1; out[start+6]= (In shr 6) and 1; out[start+7]= (In shr 7) and 1; } habs nicht getestet, aber ich denke es sollte laufen, mfg Tom > Hallo André, > > vielen Dank für deine schnelle Antwort. Sicherlich hast Du noch eine Funktion für den umgekehrten > Fall zum Einlesen der Ports des PCF8574 und Ausgabe in einem 8 Byte gro�em Bytearray. > > Danke Mathias S. > > > Hallo Mathias, > > > > > Ich habe 8 Bytespeicher mit 0 oder 1, diese möchte ich in eine Zahl umwandeln, um sie dann über > > > den I2-Bus an den PCF8574 zu schicken. > > > Ist das sinnvoll, oder steuer ich jeden einzelnen Ausgang am PCF8574. > > > Ich wollte noch vor dem senden die Zahl speichern um nur zu Senden wenn sich die Zahl geändert hat, > > > um den I2-Bus nicht zu sehr zu belasten! > > > > Zuerst: Der Bus hei�t I²C-Bus(oder I2C, oder IIC) und nicht I2-Bus. > > > > Wenn ich Dich richtig verstehe, dann hast Du ein 8 Byte gro�es Bytearray und > > in jedem Element steht der Zustand für einen Port eines PCF8574. > > Somit mu� Du daraus ein Bitmuster erstellen. > > Nichts leichter als das: > > > > function getStates(byte states[]) returns byte > > {byte i,d; > > d=0; > > for i=0 ... 7 d=d or ((states[i]!=0) and (1 shl i)); > > return d; > > } > > > > MfG André H. > > | ||
Antwort schreiben Antworten: |