Forum: Mikrocontroller und Digitale Elektronik Umrechnung Dez - Hex - Asci


von Paul Elektro (Gast)


Lesenswert?

Hallo
zur Programmierung bzw. Eingabe muss ich Dez Zahlen verwenden, z.B. 0 
und 1 zum ein- und ausschalten.
Das Display möchte aber die Zahhlen 48 und 49 haben.

Da

0 - 0x30 - 48
1 - 0x31 - 49

ist, möchte ich bei der Eingabe die Zahlen umrechnen.
Programmiere in C und Atmega 128. Wie kann ich das am besten machen?
LD Pa.

von Peter II (Gast)


Lesenswert?

Paul Elektro schrieb:
> Wie kann ich das am besten machen?
1
1 + '0' = 49 = '1'

von rk (Gast)


Lesenswert?

Wie erfolgt denn die Eingabe?

von Paul Elektro (Gast)


Lesenswert?

Innerhalb des Programmes kann ich verschidene Werte setzen, z.B. ob ich 
die Beleuchtung für das display ein oder ausschalte

Beleuchtung_schalten(0);   // Eingabe 0-aus, 1=ein

Ausführung:    (Beispiel)

void Beleuchtung_schalten(int8_t a)
  {
    schalte Beleuchtung_48;      (alles vereinfacht ohne Angabe Display)
  }

von sdecc (Gast)


Lesenswert?

Normalerweise ist der Ansatz, die intern benutzen Werte zur Ausgabe 
passend zu formatieren.

z.B.
int aus = 0;
int ein = 1;

printf(" Werte (ein,aus) = %1i %1i\n", ein, aus);

http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/004_c_ein_ausgabe_002.htm

sdecc

von Paul Elektro (Gast)


Lesenswert?

Danke für den Hinweis mit dem Buch. Habe es sogar als Hardware da

von W.A. (Gast)


Lesenswert?

sdecc schrieb:
> Normalerweise ist der Ansatz, die intern benutzen Werte zur Ausgabe
> passend zu formatieren.
>
> z.B.
> int aus = 0;
> int ein = 1;

Und warum als Variable?
Die Werte werden sich in dieser Welt nicht mehr ändern.
Warum also nicht als define für den CPP?

von posti (Gast)


Lesenswert?

Hi

pro eingegebener Ziffer:

Bin 0-1 0x30-0x31
- Summe_alt=Summe
- Summe=Summe_alt x 2
- Ziffer=Eingabe - 0x30
- Summe = Summe + Ziffer

Oct 0-7 0x30-0x37
- Summe_alt=Summe
- Summe=Summe_alt x 8
- Ziffer=Eingabe - 0x30
- Summe = Summe + Ziffer

Dez 0-9 0x30-0x39
- Summe_alt=Summe
- Summe=Summe_alt x 10
- Ziffer=Eingabe - 0x30
- Summe = Summe + Ziffer

Hex 0-9 A-F 0x30-0x39 0x41-0x46
- Summe_alt=Summe
- Summe=Summe_alt x 10
- Ziffer=Eingabe - 0x30
? Ziffer > 9 ? J-> Ziffer=Ziffer - 0x07
- Summe = Summe + Ziffer

MfG

von posti (Gast)


Lesenswert?

Verdammt - bei HEX muß natürlich x16 in der ersten Zeile stehen ...

von sdecc (Gast)


Lesenswert?

W.A. schrieb:
> Und warum als Variable?

Nur als Beispiel.

sdecc

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.