-         

Ergebnis 1 bis 2 von 2

Thema: Was machen die Hexzeichen da? o_O

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    06.07.2007
    Beiträge
    31

    Was machen die Hexzeichen da? o_O

    Anzeige

    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:

    Code:
    #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:
    Code:
    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\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x07\0x07\0x07\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: 022
    Rechts: 022
    
    Links: 011
    Rechts: 011\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x08\0x07\0x07\0x07\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: 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\0x91M\0xd7\0xfa\0x0c\0x9a\0xb1\0xb4\0xf2\0x0f\0x00r\0x03\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\0x00r\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\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\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: \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\0x00r\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\0x08\0x07\0x07\0x07\0x07\0x08\0x08\0x08\0x08\0x08\0x08\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?
    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.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    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
    Only entropy comes easy. - Anton Checkhov

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •