Moinsen,
ich codiere gerade IO-Funktionen für ein Monitorprogramm. Mit Schritt 2
bin ich gerade fertig. Es sollte ein Nibble (0 bis 0x0F) in ein
ASCII-Zeichen gewandelt und auf die serielle ausgegeben werden.
Diese Funktion siht bei mir so aus:
1 | void outNibble(unsigned char ch)
|
2 | {
|
3 | if ((ch & 0x0f) < 10)
|
4 | {
|
5 | outChar((ch & 0x0f) + '0');
|
6 | }
|
7 | else outChar((ch & 0x0f) + '7');
|
8 | }
|
Als nächstes soll eine Funktion outHexByte() entworfen werden. Diese
gibt den Inhalt eines Bytes als zwei ASCII-Zeichen aus, wobei
outHexByte() die Funktion outNibble() benutzt.
Ich verstehe dabei die Fragestellung nicht. Vielleicht sollen die
Nibbles aus outNibble so geshiftet werden, dass dabei ein Byte entsteht,
also in etwa so:
1 | void outHexByte(unsigned char ch)
|
2 | {
|
3 |
|
4 | outNibble(ch << 10); //Shift eines Nibbles um 4 Stellen nach links
|
5 |
|
6 | }
|
Als nächster Schritt müsste das Low-Nibble an das High-Nibble angehängt
werden. Ich weiß da auf jeden Fall nicht weiter. Wäre gut, wenn mir da
einer helfen könnte.