Forum: Mikrocontroller und Digitale Elektronik Bitshift, Integer anzeigen


von MOSFET (Gast)


Lesenswert?

1
for(int i = 0; i < 8; i++)
2
{
3
 uart_putb_format((1<<i)|(1<<i)-1);
4
5
}

Möchte die Zahlen 0 - 7 als Leds darstellen. Ist das so richtig? Bei i = 
0 soll die erste Led angehen, bei 1 sollen 2. Leds angehen bis hin zu 
alle  bei 7.

von Joe F. (easylife)


Lesenswert?

ja. lob.

(1<<(i+1)) -1

oder

0xff >> (7-i)

ginge auch.

von Dirk B. (dirkb2)


Lesenswert?

Oder wenn du keinen Barrelshifter hast:
1
for(int j = 1; j <= 0xff; j = (j << 1) | 1)
2
{ uart_putb_format(j); 
3
}

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Oder gleich so:
1
  unsigned char t[8]= {1,3,7,15,31,63,127,255};
2
  ...
3
  uart_putb_format(t[i]);

Oder ziemlich kryptisch in einer Zeile:  ;-)
1
uart_putb_format((unsigned char)"\x1\x3\x7\xf\x1f\x3f\x7f\xff"[i]);

Oder gleich ganz kryptisch in einer Zeile:  ;-)
1
uart_putb_format((unsigned char)"\1\3\7\17\37\77\177\377"[i]);
Stichwort: Oktalsystem

Siehe dort: http://codepad.org/c75TGHfX

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.