PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was machen die Hexzeichen da? o_O



AppeL
10.07.2008, 02:38
Bin seit langer Zeit mal wieder dabei an meinem Asuro zu basteln und hab versucht ein Programm zu schreiben, dass die Fototransistorwerte ausgibt und ans Terminal sendet:


#include <stdlib.h>
#include "asuro.h"



void main(void)

{

Init();

void sleepms(float ms) {
int i=0;
for (i=0; i<((ms/1000*72000)/256)-1; i++)
Sleep(255);
}

unsigned int data[2];
char left, right;

SerWrite("Transistor Test\n", 17);
sleepms(500);

while(1) {
LineData(data);

itoa(data[0], left, 10);
itoa(data[1], right, 10);

SerWrite("\n\nLinks: ", 9);
SerWrite(left, strlen(left));
SerWrite("\nRechts: ", 9);
SerWrite(right, strlen(right));

sleepms(500);
}


return 0;

}


Im Terminal bekomm ich jetzt folgende Ausgabe:

Transistor Test
\0x00\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08 \0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\0x08 \0x08\0x08\0x07\0x07\0x07

Links: 011
Rechts: 011\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0 x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0 x08\0x08\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0 x08\0x08\0x08\0x08\0x07\0x07\0x07\0x08\0x08\0x08\0 x08\0x08\0x08\0x08\0x08\0x08\0x07\0x07\0x07

Links: 022
Rechts: 022

Links: 011
Rechts: 011\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0 x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0 x08\0x08\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0 x08\0x08\0x08\0x08\0x07\0x07\0x07\0x08\0x08\0x08\0 x08\0x08\0x08\0x08\0x08\0x08\0x07\0x07\0x07

Links: 022
Rechts: 022

Links: 022
Rechts: 022M\0xd7\0xfa\0x0c\0x9a\0xb1\0xb4\0xf2\0x0f\0x00r \0x03\0x91@\0x82*\0xc3\0xb1p^2\0xea\0x00r\0x03\0x9 1M\0xd7\0xfa\0x0c\0x9a\0xb1\0xb4\0xf2\0x0f\0x00r\0 x03\0x91@\0x82*\0xc3\0xb1p^2\0xea\0x00r\0x03\0x91\ 0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x07\ 0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\0x08\ 0x08\0x08\0x07\0x07\0x07\0x07\0x08\0x08\0x08\0x08\ 0x08\0x08\0x08\0x08\0x08\0x07\0x07\0x07\0x07\0x08\ 0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x07\0x07\ 0x07\0x07

//AB HIER LEUCHTE ICH DIE TRANSISTOREN AN

Links: 8978
Rechts: 8978!\0x04\0x120\0x80\0x13\0x12\0xc9\0x92 \0xa2NC\0x17k\0xdeL!\0xb1\0x13\0x03& \0xa2NC!\0x04\0x120\0x80\0x13\0x12\0xc9\0x92 \0xa2NC\0x17k\0xdeL!\0xb1\0x13\0x03& \0xa2NCM\0xd7\0xfa\0x0c\0x9a\0xb1\0xb4\0xf2\0x0f\0 x00r\0x03\0x91@\0x82*\0xc3\0xb1p^2\0xea\0x00r\0x03 \0x91!\0x04\0x120\0x80\0x13\0x12\0xc9\0x92 \0xa2NC\0x17k\0xdeL!\0xb1\0x13\0x03& \0xa2NC!\0x04\0x120\0x80\0x13\0x12\0xc9\0x92 \0xa2NC\0x17k\0xdeL!\0xb1\0x13\0x03& \0xa2NC\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x 08\0x07\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x 08\0x08\0x08\0x08\0x07\0x07\0x07\0x07\0x08\0x08\0x 08\0x08\0x08\0x08\0x08\0x08\0x08\0x07\0x07\0x07\0x 07\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x 07\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\0x 08\0x08\0x08\0x07\0x07\0x07\0x07\0x08\0x08\0x08\0x 08\0x08\0x08\0x08\0x08\0x08\0x07\0x07\0x07\0x07

Links: \0xcdUl\0x02
Rechts: \0xcdUl\0x02

Links: 8968
Rechts: 8968!\0x04\0x120\0x80\0x13\0x12\0xc9\0x92 \0xa2NC\0x17k\0xdeL!\0xb1\0x13\0x03& \0xa2NCM\0xd7\0xfa\0x0c\0x9a\0xb1\0xb4\0xf2\0x0f\0 x00r\0x03\0x91@\0x82*\0xc3\0xb1p^2\0xea\0x00r\0x03 \0x91!\0x04\0x120\0x80\0x13\0x12\0xc9\0x92 \0xa2NC\0x17k\0xdeL!\0xb1\0x13\0x03& \0xa2NC!\0x04\0x120\0x80\0x13\0x12\0xc9\0x92 \0xa2NC\0x17k\0xdeL!\0xb1\0x13\0x03& \0xa2NC\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x 08\0x07\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x 08\0x08\0x08\0x08\0x07\0x07\0x07\0x07

//AB HIER IST ES WIEDER DUNKEL

Links: 0011
Rechts: 0011\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\ 0x07\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\ 0x08\0x08\0x08\0x07\0x07\0x07\0x07

Links: 0022
Rechts: 0022\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\ 0x07\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\ 0x08\0x08\0x08\0x07\0x07\0x07\0x07\0x08\0x08\0x08\ 0x08\0x08\0x08\0x08\0x08\0x08\0x07\0x07\0x07\0x07\ 0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x07\ 0x07\0x07\0x07

Links: 0022
Rechts: 0022\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\ 0x07\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\ 0x08\0x08\0x08\0x07\0x07\0x07\0x07

Links: 0022
Rechts: 0022

Warum hab ich da ständig diese Hexzahlen zwischen stehen und warum hab ich bei Anstrahlung mehr und andere Hexzahlen als bei Dunkelheit? :-s
Zusätzlich dazu hab ich gelesen, dass die Werte von 0 bis 1024 gehen, warum hab ich dann bei Anstrahlung 8000er Werte?

Ich nutze Ubuntu 8.04 und Cutecom als Terminal.

fhs
10.07.2008, 02:58
Hi,

itoa(int, char*, int) erwartet als zweiten Parameter die Adresse eines char-Strings, der groß genug ist, die in ASCII konvertierte Zahl (+ Terminierung) zu halten.

Du musst entsprechenden Speicherplatz bereitstellen, z.B. statisch mit
<pre> char left[10];
char right[10];</pre>
Danach wird auch Dein Aufruf
<pre> itoa(data[0], left, 10);
itoa(data[1], right, 10); </pre>so funktionieren, wie Du es erwartest.

Gruß

Fred