LabVIEWForum.de
Binärstring erzeugen - Probleme - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Binärstring erzeugen - Probleme (/Thread-Binaerstring-erzeugen-Probleme)

Seiten: 1 2 3


Binärstring erzeugen - Probleme - Index - 03.03.2011 14:46

Hallo,

ich brauche mal wieder eure Hilfe. Ich komme hier gerade absolut nicht weiter. :angry2:

Was ich vorhabe:
Ich will einen Binär-String erzeugen, in dem jeweils immer eine Eins "wandert".
Dieser soll bei jeder Änderung an den Mikrocontroller gesendet werden.
Der C-Code, der den String verarbeiten soll ist bereits fertig.


Beispiel mit einem String der Länge 24 (Leerzeichen nur zur besseren Lesbarkeit eingefügt):

1. Schritt: 1001 0000 0000 0000 0000 0000
2. Schritt: 1000 0100 0000 0000 0000 0000
3. Schritt: 1000 0001 0000 0000 0000 0000
4. Schritt: 1000 0000 0100 0000 0000 0000
...
11. Schritt: 1000 0000 0000 0000 0000 0001
12. Schritt: 0010 0100 0000 0000 0000 0000
13. Schritt: 0010 0001 0000 0000 0000 0000
14. Schritt: 0010 0000 0100 0000 0000 0000
...
xx. Schritt: 0000 0000 0000 0000 0010 0010
xx. Schritt: 0000 0000 0000 0000 0000 1010

Nach jedem Schritt wird der String an den Mikrocontroller übertragen.
Das geht so lange weiter bis die Eins die ganz links anfängt am Ende an vorletzter Stelle landet.
Ich muss unter anderem beachten das die rote Eins einen größeren Sprung machen muss
wenn die schwarze Eins auch einen macht. Ebenfalls müssen immer zwei Einsen vorhanden sein.

Nun versuche ich das mit den Stringfunktionen zu lösen, komme aber
absolut nicht zurecht damit. Gibt es da vielleicht eine andere Möglichkeit das zu realisieren?Huh


RE: Binärstring erzeugen - Probleme - GerdW - 03.03.2011 14:54

Hallo Index,

Zitat:Gibt es da vielleicht eine andere Möglichkeit das zu realisieren?
Ja klar! Arbeite doch einfach mit Zahlen! Die kann man wunderbar rotieren und ver-ODER-n...
[attachment=32589]

Feinheiten wie das Beschränken auf 24bit und das Sicherstellen, dass jeweils 2 Bits gesetzt sind, überlasse ich dir Smile


RE: Binärstring erzeugen - Probleme - Index - 03.03.2011 16:10

Danke für die Antwort. Ich versuche gerade das Programm zu verstehen.
Wie bekomme ich die "mask" hin? Und wo genau müsste ich eingreifen um
die Eins entweder 2 oder 3 Stellen springen zu lassen?


RE: Binärstring erzeugen - Probleme - GerdW - 03.03.2011 16:14

Hallo Index,

Zitat:Wie bekomme ich die "mask" hin?
Mask ist auch nur eine Zahl, hier in Hex-Formatierung. Für dein Beispiel, 1. Zeile, müsste die Zahl 0x00800000 lauten...

Zitat:wo genau müsste ich eingreifen um die Eins entweder 2 oder 3 Stellen springen zu lassen?
Z.B. beim Rotier-Befehl. Statt der "-1" (eine Stelle nach links) eine "-2" oder "-3" (2/3 Stellen nach links) anschließen...


RE: Binärstring erzeugen - Probleme - Index - 09.03.2011 10:59

Danke GerdW für die bisherige Hilfe.

Habe nun wieder Zeit mich mit dem Problem zu befassen.
Kann es sein das ich mit Zahlen keine "laufende" Eins in einem String der Länge 192 hinbekomme?
Bei Stelle 32 hört er auf, da dann wohl der Wert zu Groß wird.


RE: Binärstring erzeugen - Probleme - jg - 09.03.2011 11:26

Ja klar, eine 32-bit Zahl hat nur 32 bits, und nicht 192...

Gruß, Jens


RE: Binärstring erzeugen - Probleme - Index - 09.03.2011 12:02

Gut, dann muss ich es doch mit Stringfunktionen hinkriegen.


RE: Binärstring erzeugen - Probleme - GerdW - 09.03.2011 13:25

Hallo Index,

Zitat:Gut, dann muss ich es doch mit Stringfunktionen hinkriegen.
Ich würde dafür ein boolsches Array verwenden! Die Vorgehensweise würde sich dabei nicht einmal ändern.
Aber du kannst natürlich auch einen String verwenden...

Zitat:String der Länge 192
Hättest du eine solche "Kleinigkeit" gleich zu Anfang mitgeteilt, hättest du evtl. auch gleich von Anfang an passende Antworten erhalten... Aber hast du ja nicht!


RE: Binärstring erzeugen - Probleme - Index - 09.03.2011 14:06

(09.03.2011 13:25 )GerdW schrieb:  Hallo Index,

Ich würde dafür ein boolsches Array verwenden! Die Vorgehensweise würde sich dabei nicht einmal ändern.
Aber du kannst natürlich auch einen String verwenden...

Hast du da vielleicht ein kleines Beispiel für mich wie du das meinst?

Zitat:Hättest du eine solche "Kleinigkeit" gleich zu Anfang mitgeteilt, hättest du evtl. auch gleich von Anfang an passende Antworten erhalten... Aber hast du ja nicht!

Ja, mein Fehler. Ich dachte ein Beispiel mit 24 Stellen wäre erst mal einfacher zu erklären.


RE: Binärstring erzeugen - Probleme - GerdW - 09.03.2011 14:26

Hall Index,

Zitat:Hast du da vielleicht ein kleines Beispiel für mich wie du das meinst?
Du ersetzt in meinem Beispiel-Bild die numerischen Elemente (Startwert, Maske und Anzeige) durch boolsche Arrays und musst dann nur die Formatierung in String anpassen...

Zitat:ein Beispiel mit 24 Stellen wäre erst mal einfacher zu erklären.
Noch einfacher wäre ein Beispiel mit 8bit gewesen! Smile Trotzdem hättest du die Endanwendung erwähnen können...