>Wenn ich outHexWord(0x2F) aufrufe sollte nach meinem Verständnis
>(welches noch nicht weit reicht) 47 (dezimal rauskommen), da die
>Wortbreite des 8051 8 Bit beträgt.
DU verstehst es nict. 0x27 und 47 ist dieselbe Zahl! Nur durch
unterschiedliche Basen^(*) dargestellt! Da braucht erstmal nix
umgerechnet werden.
Deshalb passsen ja in 8bit auch nur so dezimal krumme Werte von 0..255
rein. Hexadezimal, also zur Basis 16 dargestellt, ergibt das die
"gerade" Zahl von 0..0xFF.
Anders sieht es aus, wenn du den Inhalt des 8bit-Registers (oder einer
8bit Variable) auf einem Display ausgeben willst. Dann musst du das in
einen String umwandeln.
Davon hast du aber nichts erwähnt, obwohl das das vermuten lässt:
outChar((ch & 0x0f) + '0');
^^^^
(*)
Das ist dasselbe, als ob ich sage, der Monitor kostet entweder 100Euro,
oder 200DM. Das ist genau dasselbe, nur durch unterschiedliche Basen
(hier: Währungen) dargestellt.