mikrocontroller.net

Forum: Compiler & IDEs Winavr und Bitoperationen


Autor: Bastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

beim Debuggen im AVRStudio stelle ich fest, dass mein Code im Winavr 
nich so will, wie gedacht.

Bei den Bitoperationen happert es ein bißchen:


void ColorChanger(unsigned char red, unsigned char green, unsigned char 
blue)
{

  unsigned char red_value;
  unsigned char green_value;
  unsigned char blue_value;


  green_value=0;
  blue_value=0;

  red=red&0x0F;  //Maskieren des Low-Nibbles

  red_value=red;

  red_value=red_value<<4; //Shiften des Low-Nibbles auf das High-Nibble

  red_value=red_value&red;//Engültiges Verknüpfen vom High-Nibble und 
Low-Nibble

...
}

Funktionsaufruf dann mit:
ColorChanger(0x0F, 0x00, 0x00);

Statt der red_value=0xFF kommt red_value=0 raus. :-(

Wat mach ich denn nun wieder falsch?


Gruß Bastian

Autor: Plazebo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja 0xF0 & 0x0F ist nunmal 0x00.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du 0x0F um 4 Bits nach links schiebst, kriegst du 0xF0. Wenn du das 
dann mit 0x0F maskierst (&), kommt naturgemäss 0 raus. Könnte sein, dass 
du eigentlich "|" statt "&" meinst.

Autor: Bastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, wie Herr Simpson sagen würde ;-)

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastian wrote:

> Nein, wie Herr Simpson sagen würde ;-)

Da muss ich mich outen: ich kenne den Herrn zwar dem Namen nach, aber 
nicht seine Gewohnheiten. Daher entgeht mir hier wahrscheinlich der 
Witz.

Autor: John Small (linux_80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das bedeutet normalerweise, daß der Herr Simpson erkannt hat, dass er 
einen Fehler gemacht hat.

im original:
http://force.on.neobee.net/agcb_Doh!.wav

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.