-
-
Moderator
Robotik Einstein
ok, kurzes umrechnungs-howto:
im datenblatt stehen 9stellige zahlen. die letzte stelle, ACK, wird ignoriert. bleiben 8 stellen.
beispiel:
01101101
diese zahl teilst du in zwei hälften:
0110 1101
jetzt nimmst du die erste hälfte: 0110
von RECHTS NACH LINKS ist der wert der ziffern
1,2,4,8
alo rechnest du jetzt von rechts nach links:
0*1 + 1*2 + 1*4 + 0*8
also (ziffer an der stelle)*(wert der stelle)
0*1 + 1*2 + 1*4 + 0*8 = 6
diese 6 merkst du dir.
zweite hälfte: 1101
von rechts nach links:
1*1+0*2+1*4+1*8=13
jetzt hast du zwei zahlen:
6 13
das musst du jetzt nur noch umrechnen in folgendem muster:
0->0
1->1
...
8->8
9->9
10->A
11->B
12->C
13->D
14->E
15->F
also schreibst du anstatt 6 13 jetzt 6D. damit der compiler die zahl versteht, schreibst du noch 0x davor. das bedeutet also nur "dies ist eine hexzahl"
binäre zahl -> hexzahl
01101101 -> 6D
noch ein beispiel: die adresse ds displays.
01110100
zwei hälften:
0111 0100
erste hälfte:
1*1+1*2+1*4+0*8=7
zweite hälfte:
0*1+0*2+1*4+0*8=4
also ist die hex-zahl 0x74
wenn im datenblatt an einer bitstelle ein X steht, dann ist es egal was hier übertragen wird. vorzugsweise eine null, ist leicher zu rechnen.
also für dein beispiel 010xxxxx1:
die eins am ende fällt weg. übertragen wird 01000000
zwei hälften: 0100 0000
erste hälfte: 0*1+0*2+1*4+0*8=4
zweite hälfte: 0*1+0*2+0*4+0*8=0
zusammen:0x40
mehr ist es nicht...
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen