Frage zur Bitabfrage gesetzt, gelöscht

OP #4243773
Lesenswert?
• ▲
▼
Hallo,
ich experimentiere gerade mit einer LCD-Anzeige. Hierbei frage ich mit 
dem Macro if (bit_is_set(c, 7)) ab, ob Bit7 gesetzt ist oder nicht.

Die aufrufende Funktion
1
lcd_send(BEFEHL, LCD_CLEAR);    // LCD clear
übergibt als Parameter 0x00 für BEFEHL und 0x01 für LCD_CLEAR.
1
void lcd_send(uint8_t type, uint8_t c)
2
{
3
  if (type == BEFEHL)
4
    cbi(LCDPORT, LCD_PIN_RS); /* RS=0: Befehl folgt ... ******/
5
    //PORTD &= ~(1 << LCD_PIN_RS);
6
  else
7
    sbi(LCDPORT, LCD_PIN_RS); /* RS=1: Daten folgen ... ******/
8
    //PORTD |= (1 << LCD_PIN_RS);
9

10
  /* (1) HIGH NIBBLE wird gesendet ******/
11
  if (bit_is_set(c, 7))
12
    sbi(LCDPORT, LCD_PIN_D7);
13
  else cbi(LCDPORT, LCD_PIN_D7);


Kann ich das auch anders lösen, ohne das Macro zu verwenden?

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.