Forum: Compiler & IDEs Suche bestimmte Seite mit Bit-Schubsereien, viele Beispiele


von Wf88 (wf88)


Lesenswert?

Hi,

ich habe vor einer Weile mal eine Seite entdeckt und gedacht, die wäre 
in den Bookmarks, leider nicht.

Auf der Seite geht es um viele Beispiele, wie man mit logischen 
Operation und viel Geschick Daten "bearbeitet". Es gab viele Beispiele, 
die Sprache war wohl C oder (irgend ein) Assembler.
Die Seite an sich war sehr einfach gehalten, Text, Information, Grau 
(glaube ich).

Viel genauer kann ich es gar nicht beschreiben, ich hatte damals keinen 
Kopf dafür und dachte ich hätte es dann abgespeichert.

Vielleicht klingelt es ja bei jemandem von euch.

: Gesperrt durch Moderator
von Johann L. (gjlayde) Benutzerseite


Lesenswert?


von Johann L. (gjlayde) Benutzerseite


Lesenswert?


von Andreas B. (abm)


Lesenswert?

bit twiddling hacks

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Artikel Bitmanipulation mit Beispielen in C und AVR-ASM.

: Bearbeitet durch Moderator
von Wf88 (wf88)


Lesenswert?

Andreas B. schrieb:
> bit twiddling hacks

DAS war die Seite, die ich im Kopf hatte. Die ersten beiden passen aber 
gerade auch gut zum Thema und "nehme die ebenfalls mit durch."

Vielen Dank euch allen!

Frank M. schrieb:
> Artikel Bitmanipulation mit Beispielen in C und AVR-ASM.

Der Grund, warum mir die gesuchte wieder (so halb) einfiel, ist 
folgender:

ich bastle seit geraumer Zeit mit verschiedenen Displays und serieller 
Kommunikation herum, hauptsächlich an irgendwelchen Versuchen zu 
verschiedenen (selber ausgedachten) Protokollen.
Ich komme aber immer wieder auf Escape-Sequenzen zurück. Immer dann, 
wenn ein weiteres Gerät dazu kommen soll, was eben solche schluckt.

Mit dem hiesigen Artikel habe ich mich bisher immer beschäftigt, wenn es 
darum ging. Bin darin eigentlich auch nicht schlecht (behaupte ich jetzt 
einfach). Mein Code zu den Escape Sequenzen ist aber ein ekelhaft 
riesiges, lahmes und hässliches Monster.

Ich möchte mich jetzt einfach erstmal ausgiebig damit beschäftigen, dann 
das Monster neu auflegen.

Ich habe mir zum Beispiel auch schonmal TellyMate Code angesehen, 
nachvollzogen wie die das machen, vom Empfang bis fertig ausgeführt. 
Finde das aber auch nicht elegant gelöst.

Wer sowas schonmal gemacht hat, weiss bestimmt was ich meine. z.B. das 
CrystalFontz  Protokoll per UART. Control Chars 1byte + evtl 
Parameter/Daten. Dann vier Escape Sequenzen (3byte only, zum Glück!) und 
bis zu 8 Sonderzeichen, die im Display an Charset(0) beginnen - im 
Protokoll aber bei 0x80. Dann natürlich noch der normale Text. und da 
ist noch keine Möglichkeit gegeben, dass man meherere Displays an einer 
Leitung addressieren oder zumindest den Empfang deaktivieren kann. 
waaaaaah.

: Bearbeitet durch User
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Wf88 schrieb:
> Ich komme aber immer wieder auf Escape-Sequenzen zurück.

Sind das Escape-Sequenzen, die das Display direkt schluckt, oder 
schickst Du an einen µC (generische, selbst erdachte) Escape-Sequenzen, 
welcher diese dann in Display-spezifische Befehle umsetzen soll?

Schau Dir mal als mögliche Anregng MCURSES an.

von Wf88 (wf88)


Angehängte Dateien:

Lesenswert?

Frank M. schrieb:
> Sind das Escape-Sequenzen, die das Display direkt schluckt, oder
> schickst Du an einen µC (generische, selbst erdachte) Escape-Sequenzen,
> welcher diese dann in Display-spezifische Befehle umsetzen soll?

Beides :)
Ich habe fertige Displays wie das Siemens BA63, Auszug aus dem Manual im 
Screenshot.

An solchen lässt sich nichts ändern. LED-Matrix, KS0108 und HD44780 
Displays habe ich welche mit selbst gestrickter Steuerung und dabei 
komme ich eben immer auf Escape Sequenzen zurück.

MCURSES kennne ich auch schon und verwende es auf meiner LED Matrix 
(96x8) für einen Screen-Editor (Pixel an/aus, Cursor bewegen) und einen 
Text-Editor :)

: Bearbeitet durch User
Beitrag #7674570 wurde von einem Moderator gelöscht.
Beitrag #7674605 wurde von einem Moderator gelöscht.
Beitrag #7674874 wurde von einem Moderator gelöscht.
Beitrag #7674945 wurde von einem Moderator gelöscht.
Beitrag #7674965 wurde von einem Moderator gelöscht.
Beitrag #7674981 wurde von einem Moderator gelöscht.
Beitrag #7674993 wurde von einem Moderator gelöscht.
Beitrag #7674995 wurde von einem Moderator gelöscht.
Beitrag #7675017 wurde von einem Moderator gelöscht.
Beitrag #7675047 wurde von einem Moderator gelöscht.
Beitrag #7675118 wurde von einem Moderator gelöscht.
Beitrag #7675129 wurde von einem Moderator gelöscht.
Beitrag #7675130 wurde von einem Moderator gelöscht.
Beitrag #7675132 wurde von einem Moderator gelöscht.
Beitrag #7675133 wurde von einem Moderator gelöscht.
Beitrag #7675136 wurde von einem Moderator gelöscht.
Beitrag #7675137 wurde von einem Moderator gelöscht.
Beitrag #7675139 wurde von einem Moderator gelöscht.
Beitrag #7675140 wurde von einem Moderator gelöscht.
Beitrag #7675147 wurde von einem Moderator gelöscht.
Beitrag #7675148 wurde von einem Moderator gelöscht.
Beitrag #7675149 wurde von einem Moderator gelöscht.
Beitrag #7675152 wurde von einem Moderator gelöscht.
Beitrag #7675159 wurde von einem Moderator gelöscht.
Beitrag #7675385 wurde von einem Moderator gelöscht.
Beitrag #7675404 wurde von einem Moderator gelöscht.
von Peter D. (peda)


Lesenswert?

Gerhard H. schrieb im Beitrag #7674570:
> PORTB &= ~((1 << MEINBIT0) | (1 << MEINBIT2)); // löscht Bits 0 und 2 in
> PORTB

Man darf in C auch Bitfelder verwenden und damit die Pins mit 
erklärenden Namen definieren.
Ich benutze dazu ein "hardware.h", worin alles Schaltungs spezifische 
definiert wird. Dadurch kann man bei Bedarf die Pins auch schnell 
wechseln.
Dann sieht der Code z.B. so aus:
1
if (TASTER == 0 && INTERLOCK == 1)
2
  MOTOR = 1;

Beitrag #7675438 wurde von einem Moderator gelöscht.
Beitrag #7675447 wurde von einem Moderator gelöscht.
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Da der TO seine Antwort längst bekommen hat und hier lediglich nur noch 
versucht wird, den 1001sten C vs. ASM-Krieg anzuzetteln, mache ich hier 
mal zu.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.