Ansicht:   

#159394 C programmierung, problem mit input bitmaske (pc.coding)

verfaßt von frenchcancan [Gast], 04.09.2009, 11:11:43

ich habe folgendes Problem zu lösen.
Ein CProgramm läuft auf eine Borasd mit digitalen Eingängen (inputs) und Ausgängen.
Es gibt eine Reihe von 8 digitalen inputs, die auf 0 oder auf 1 sind. Pro Input habe ich ein bit:

char input_zustand:


0000 0000: alle input auf 0

1111 1111: alle inputs auf 1

0001 0001: erster und vierter input sind auf 1.


Ich muss ein Programm laufen lassen, aber nur, wenn ein bestimmter Zustand der inputs gegeben ist. Welcher Zustand das ist, wird vom Benutzer in einer Maske festgelegt.

und zwar könnte er zu Beispiel eine 1 eingeben, wenn der Zustand 1 sein muss
Eine 0, wenn der Zustand 0 sein muss. und eine 2, wenn der Zustand egal ist.

Allerdings komme ich mit dieser lösung dann nicht mehr mit einer bitmaske aus, weil ich nicht mehr 0 oder 1 habe. ich muss wohl ein array[8] nehmen.

Ich hätte gern soetwas gehabt:

if (input_zustand) & (input_maske)
	programm_laufen_lassen();
else
	meldung_voraussetzungen nicht erfüllt();



Aber mit einer Maske aus 0,1 udn 2 geht es natürlich nicht.
Ich kann natürlich in einer Schleife prüfen lassen, ob input_maske[x] und (input_zustand&2^x) übereinstimmen, aber vielleicht geht es eine elegantere Lösung?
Hat jemand eine Idee, wie man es am schlauesten machen könnte?

Vielen Dank im Voraus, falls jemand eine Idee hat,

frenchcancan

 

gesamter Thread:

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz