Forum: Gesperrte Threads Array of Bool


von Rebecca_Black (Gast)


Lesenswert?

Kann mir jemand dieses Array genauer erklären?
(Ich habe den Auftrag bekommen Digit zu setzen, falls das ne rolle 
spielen sollte)

: Verschoben durch Admin
von Εrnst B. (ernst)


Lesenswert?

Welche Sprache?
In C ist ein Boolean-Array normalerweise ein Int-Array, und kann wie ein 
solches verwendet werden.
in C++ ist ein vector<bool> dank template-specialization ein echter 
Bitvector, der tatsächlich 8 Bit pro Byte verwendet.

Werte Setzen geht bei beiden gleich:
1
meinArray[42]=meinBooleanWert;

von Dominik S. (dasd)


Lesenswert?

In deinem anderen Thread hat K.H. Buchegger es recht trefflich 
formuliert:

> Neben Programmieren musst du auch lernen, vernünftige Fragen zu stellen.
> ...
> Denn hier kann dir keiner über die Schultern schauen und
> weiß daher nicht, wobei du genau Probleme hast.

Ist es so schwierig zu verstehen, dass auf eine derart gestellte "Frage" 
(falls man es so nennen kann) keiner Antworten kann?

Erkläre zuerst das Problem mit einem ausreichenden Kontext und stelle 
DANN die dazu passenden Fragen

von Rebecca_Black (Gast)



Lesenswert?

Ich hab einen Treiber für einen Display geschrieben. Dies hat 
festausgelegte Zeichen, man kann jedoch selber Zeichen schreiben. Das 
Display hat 35 Pixel 7 Reihen 5 Spalten, man kann jedes ansteuern.
Ich hab es so gemacht das man jeweils auf die 7 Zeilen schreibt:

DELAY_10ms(40);
SET_CG_RAM_ADRESS(64);  // Modus wechseln
WRITE_DATA(Zeile1);     // Erste Zeile Schreiben
WRITE_DATA(Zeile2);     // zweite Zeile Schreiben
WRITE_DATA(Zeile3);     // dritte Zeile Schreiben
WRITE_DATA(Zeile4);     // vierter Zeile Schreiben
WRITE_DATA(Zeile5);     // fünfte Zeile Schreiben
WRITE_DATA(Zeile6);     // sechste Zeile Schreiben
WRITE_DATA(Zeile7);     // siebte Zeile Schreiben
SET_CG_RAM_ADRESS(Position);  // Modus wechseln und Ausgabe Position 
wählen
WRITE_DATA(0);          // geschriebener Wert holen

Das SET_CG_RAM_ADRESSS (wechselt in den Modus)
Dann schreibe ich jeweils auf die 7 Zeilen den Wert. Die Zeilen sind von 
einander getrennt und die Spalten sind zusammen. Wenn man Den Wert 
sieben schreibt leuchten die ersten 3 Spalten.


Mein Vorgesetzter will das ich die 7 Reihen zu einem Wert zusammenfasse, 
er hat gesagt ich sollte dies mit einem Array of Bool machen.

von Dumdi D. (dumdidum)


Lesenswert?

Rebecca_Black schrieb:
> Ich hab einen Treiber für einen Display geschrieben.

und in welcher Sprache hast Du das gemacht?

von Karl H. (kbuchegg)


Lesenswert?

Rebecca_Black schrieb:

> Mein Vorgesetzter will das ich die 7 Reihen zu einem Wert zusammenfasse,
> er hat gesagt ich sollte dies mit einem Array of Bool machen.


Das ergibt keinen Sinn.
Denn du brauchst ja für jede Zeile einen Wert. Und er kann nun mal kein 
bool sein.
Wahrscheinlich hat er beim Sprechen einen bool mit einem unsigned char 
durcheinander gewürfelt, weil auf deinem System ein bool mit einem 
unsigned char repräsentiert wird.

Sowas passiert schon mal.
Für jemand der 'einen Treiber geschrieben hat', sollte das aber nun 
wirklich kein unüberwindbares Hindernis sein.

von Rebecca_Black (Gast)


Lesenswert?

Schreiben könnt ich es schon, dafür brauchte ich nur 35 Schalter oder 
müsste die Werte 2 hoch0 - 2 hoch 35 verwendeten oder diese Decodieren, 
dieses wäre dann aber komplizierter als das Programm vorhin und ergäbe 
keinen Sinn.
Ich dachte mit diesem "Array of Bool" könnte man dies in Kurzform 
schreiben, frag in dann heute Nachmittag was er genau gemeint hat, 
trotzdem danke.

von Εrnst B. (ernst)


Lesenswert?

Rebecca_Black schrieb:
> Ich dachte mit diesem "Array of Bool" könnte man dies in Kurzform
> schreibe

kann man. Es existiert mindestens eine Programmiersprache+Bibliothek, in 
der du
1
do_what_I_mean("Array of Bool");
schreiben kannst, und das Ergebnis genau das ist, was du dir vorstellst.

Da du uns aber weder mitgeteilt hast, welche Programmiersprache du 
verwenden willst/musst, noch was genau passieren soll, musst du das 
Problem wohl selber lösen.

von W.S. (Gast)


Lesenswert?

Leute !!

Wenn mich nach ner halben Flasche Cabernet Sauvignon nicht meine Augen 
täuschen, dann ist das Display ganz einfach ein alphanumerisches, also 
stinknormales TEXT-Display mit 4x20 Zeichen.

Also Standard-Ausgabe wie für alle üblichen Text-LCD's. Den ganzen 
Sermon mit BOOL und Konsorten kann man knicken.

also wieder mal ne Anfrage wie von der Putzfrau: "device doesnt work, 
please advise, regards.." auf den Tisch. Nervt aber trotzdem!

W.S.

von Mano W. (Firma: ---) (manow)


Lesenswert?

Dein Display hat 4x20 Zeichen und Du willst die Zeichen 0x00 .. 0x0F 
selber befüllen?

von Rebecca_Black (Gast)


Lesenswert?

Es ist nicht ein normales und normalem verstehe ich das man mit printf 
arbeiten kann, solche haben wir auch doch um die Schwierigkeiten zu 
erhöhen musste ich es mit dem machen.
Man kann nur das 0x00 füllen das Datenblatt stimmt nicht 100% überein, 
das Display ist von 1997 ;)

von W.S. (Gast)


Lesenswert?

Rebecca_Black schrieb:
> und normalem verstehe ich das man mit printf  arbeiten kann,

Wie bitte??

ich werfe an dieser Stelle offiziell das Handtuch.

W.S.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Rebecca_Black schrieb:
> Man kann nur das 0x00 füllen das Datenblatt stimmt nicht 100% überein,
> das Display ist von 1997 ;)

Das ist dein Datenblatt aber auch. Und hier liegen Displays von 1990 
rum, die auch haargenau den gleichen Befehlssatz wie deines oder ein 
beliebiges anderes HD44780 kompatibles haben. Nach dem Vergleich deines 
Datenblattes mit einem anderen 4*20 Zeichen Display hier ist der einzige 
Unterschied, das mein Display nach 39µs mit den meisten Befehlen fertig 
ist und deines dazu 40µs angibt.
Ansonsten kannst du jede beliebige Ansteuerung des HD44780 übernehmen, 
z.B. wie im LCD Tutorial in der AVR Ecke dieses Forums.

Rebecca_Black schrieb:
> Es ist nicht ein normales und normalem verstehe ich das man mit printf
> arbeiten kann, solche haben wir auch doch um die Schwierigkeiten zu
> erhöhen musste ich es mit dem machen.

Um stdio zu benutzen, musst du natürlich dafür Streams definieren. Das 
ist MC abhängig, in der Dokumentation z.B. für die gcc-avrlib aber genau 
für so ein LCD beschrieben.
Da wir aber keinerlei Hinweis auf die von dir verwendete Architektur 
haben, muss es hier enden.
Und wenn es kein 'normales' LCD ist, dann poste doch bitte keine 
irreführenden Datenblätter, sondern das von dem Bauteil, was du da vor 
dir liegen hast.

von Rebecca_Black (Gast)


Lesenswert?

Das Problem ist jetzt sowieso behoben!

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.