## c't-Projekte - Mailinglisten

[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

### Re: [ct-bot] signed vs. unsigned char

Absender: Fabian Recktenwald
Datum: Fr, 24.03.2006 12:29:58
In-reply-to: <4423CA88.5000309@xxxxxxxx>
References: <Pine.BSO.4.63.0603240904390.31736@xxxxxxxxxxxxxxxxxx> <4423C478.1030701@xxxxxxxx> <4423C9C6.2020503@xxxxxxxxxxxxxxxxxxx> <4423CA88.5000309@xxxxxxxx>

`Ich bin mal durch alle char-Definitionen durch und hab sie geändert.` `Sollte sich dann der ein oder andere noch anschauen, ob die Änderungen` `so stimmen. Gerade beim Maus-Sensor ist nicht klar, ob beim` `lesen/schreiben int8 oder uint8 stimmt.`

> > >     Hallo,

> > >     da ist in der Tat ein Problem. Wir sollten IMHO im Code nur noch Typen
> > >     verwenden, die auf allen Systemen eindeutig definiert sind:

> > >     int8 und uint8
> > >     int16 und uint16

> > >     usw.

> > >     Im bestehenden Code müssten wir dann noch die Stellen finden, an denen
> > >     das noch nicht der Fall ist.

> >     D.h. alle char Definitionen ändern in int8 oder uint8? Das sind doch
> >     einige...

>     Zumindest alle, die sich nicht mit Zeichen befassen

    Index: bot-logik.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/bot-logik.c,v
    retrieving revision 1.25
    diff -u -r1.25 bot-logik.c
    --- bot-logik.c	24 Mar 2006 00:46:37 -0000	1.25
    +++ bot-logik.c	24 Mar 2006 12:43:53 -0000
    @@ -52,8 +52,8 @@
      *
      */

    -char col_zone_l=ZONE_CLEAR;			/*!< Kollisionszone, in der sich der linke Sensor befindet */
    -char col_zone_r=ZONE_CLEAR;			/*!< Kollisionszone, in der sich der rechte Sensor befindet */
    +uint8 col_zone_l=ZONE_CLEAR;			/*!< Kollisionszone, in der sich der linke Sensor befindet */
    +uint8 col_zone_r=ZONE_CLEAR;			/*!< Kollisionszone, in der sich der rechte Sensor befindet */

     volatile int16 mot_l_goto=0;		/*!< Speichert wie weit der linke Motor drehen soll */
     volatile int16 mot_r_goto=0;		/*!< Speichert wie weit der rechte Motor drehen soll */
    @@ -1020,7 +1020,7 @@
      * @param priority Die Prioritaet
      * @param *work Den Namen der Funktion, die sich drum kuemmert
      */
    -Behaviour_t *new_behaviour(char priority, void (*work) (struct _Behaviour_t *data), int8 active){
    +Behaviour_t *new_behaviour(uint8 priority, void (*work) (struct _Behaviour_t *data), int8 active){
     	Behaviour_t *newbehaviour = (Behaviour_t *) malloc(sizeof(Behaviour_t));

     	if (newbehaviour == NULL)
    Index: ct-Bot.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/ct-Bot.c,v
    retrieving revision 1.23
    diff -u -r1.23 ct-Bot.c
    --- ct-Bot.c	22 Mar 2006 18:19:06 -0000	1.23
    +++ ct-Bot.c	24 Mar 2006 12:43:53 -0000
    @@ -71,14 +71,14 @@

     /* Nimmt den Status von MCUCSR bevor dieses Register auf 0x00 gesetzt wird */
     #ifdef DISPLAY_SCREEN_RESETINFO
    -	unsigned char reset_flag;
    +	uint8 reset_flag;
     #endif

     #ifdef TEST_AVAILABLE_COUNTER
     	#include <avr/eeprom.h>
    -	char resetsEEPROM  __attribute__ ((section (".eeprom")))=0;
    -	char resetInfoEEPROM  __attribute__ ((section (".eeprom")));
    -	char resets;
    +	uint8 resetsEEPROM  __attribute__ ((section (".eeprom")))=0;
    +	uint8 resetInfoEEPROM  __attribute__ ((section (".eeprom")));
    +	uint8 resets;
     #endif
     /*!
      * Der Mikrocontroller und der PC-Simulator brauchen ein paar Einstellungen,
    @@ -224,7 +224,7 @@
     #ifdef TEST_AVAILABLE
     	/*! Zeigt den internen Status der Sensoren mit den LEDs an */
     	void show_sensors(void){
    -		char led=0x00;
    +		uint8 led=0x00;
     		led_t * status = (led_t *)&led;
     		#ifdef TEST_AVAILABLE_ANALOG
     			(*status).rechts	= (sensDistR >> 9) & 0x01;
    Index: motor.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/motor.c,v
    retrieving revision 1.8
    diff -u -r1.8 motor.c
    --- motor.c	17 Mar 2006 17:09:24 -0000	1.8
    +++ motor.c	24 Mar 2006 12:43:54 -0000
    @@ -90,7 +90,7 @@
      * @param servo Nummer des Servos
      * @param servo Zielwert
      */
    -void servo_set(char servo, char pos){
    +void servo_set(uint8 servo, uint8 pos){
     	if (pos< SERVO_LEFT)
     		pos=SERVO_LEFT;
     	if (pos> SERVO_RIGHT)
    Index: rc5.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/rc5.c,v
    retrieving revision 1.14
    diff -u -r1.14 rc5.c
    --- rc5.c	24 Mar 2006 11:54:31 -0000	1.14
    +++ rc5.c	24 Mar 2006 12:43:54 -0000
    @@ -171,7 +171,7 @@
      */
     void rc5_bot_next_behaviour(RemCtrlFuncPar *par) {

    -	static char state =0;
    +	static uint8 state =0;

     	state++;
     	if (state==2)
    Index: sensor.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/sensor.c,v
    retrieving revision 1.9
    diff -u -r1.9 sensor.c
    --- sensor.c	22 Mar 2006 18:19:06 -0000	1.9
    +++ sensor.c	24 Mar 2006 12:43:54 -0000
    @@ -39,14 +39,14 @@
     volatile int16 sensLineL=0;	/*!< Lininensensor links */
     volatile int16 sensLineR=0;	/*!< Lininensensor rechts */

    -volatile char sensTrans=0;		/*!< Sensor Ueberwachung Transportfach */
    +volatile uint8 sensTrans=0;		/*!< Sensor Ueberwachung Transportfach */

    -volatile char sensDoor=0;		/*!< Sensor Ueberwachung Klappe */
    +volatile uint8 sensDoor=0;		/*!< Sensor Ueberwachung Klappe */

    -volatile char sensError=0;		/*!< Ueberwachung Motor oder Batteriefehler */
    +volatile uint8 sensError=0;		/*!< Ueberwachung Motor oder Batteriefehler */

    -volatile char sensMouseDX;		/*!< Maussensor Delta X, positive Werte zeigen querab der Fahrtrichtung nach rechts */
    -volatile char sensMouseDY;		/*!< Maussensor Delta Y, positive Werte zeigen in Fahrtrichtung */
    +volatile int8 sensMouseDX;		/*!< Maussensor Delta X, positive Werte zeigen querab der Fahrtrichtung nach rechts */
    +volatile int8 sensMouseDY;		/*!< Maussensor Delta Y, positive Werte zeigen in Fahrtrichtung */

     volatile int sensMouseX;		/*!< Mausposition X, positive Werte zeigen querab der Fahrtrichtung nach rechts */
     volatile int sensMouseY;		/*!< Mausposition Y, positive Werte zeigen in Fahrtrichtung  */
    Index: include/adc.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/adc.h,v
    retrieving revision 1.1
    diff -u -r1.1 adc.h
    --- include/adc.h	19 Jan 2006 17:32:10 -0000	1.1
    +++ include/adc.h	24 Mar 2006 12:43:54 -0000
    @@ -29,13 +29,13 @@
      * Liest einen analogen Kanal aus
      * @param channel Kanal - hex-Wertigkeit des Pins (0x01 fuer PA0; 0x02 fuer PA1, ..)
      */
    -int adc_read(char channel);
    +int adc_read(uint8 channel);

     /*!
      *  Wechselt einen ADU-kanal. Dafuer muessen auch die Puffer zurueckgesetzt werden
      * @param channel Kanal - hex-Wertigkeit des Pins (0x01 fuer PA0; 0x02 fuer PA1, ..)
      */
    -void adc_select_channel(char channel);
    +void adc_select_channel(uint8 channel);

     /*!
      * Diese Routine wird vom Timer-Interrupt aufgerufen und speichert einen
    @@ -49,5 +49,5 @@
      * muss das entsprechende Bit in channel gesetzt sein.
      * Bit0 = Kanal 0 usw.
      */
    -void adc_init(char channel);
    +void adc_init(uint8 channel);
     #endif
    Index: include/bot-logik.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/bot-logik.h,v
    retrieving revision 1.9
    diff -u -r1.9 bot-logik.h
    --- include/bot-logik.h	24 Mar 2006 00:46:37 -0000	1.9
    +++ include/bot-logik.h	24 Mar 2006 12:43:54 -0000
    @@ -37,8 +37,8 @@
        uint8 priority;				/*!< Prioritaet */
        struct _Behaviour_t *caller ; /* aufrufendes verhalten */

    -   char active:1;				/*!< Ist das Verhalten aktiv */
    -   char subResult:2;			/*!< War das aufgerufene unterverhalten erfolgreich (==1)?*/
    +   uint8 active:1;				/*!< Ist das Verhalten aktiv */
    +   uint8 subResult:2;			/*!< War das aufgerufene unterverhalten erfolgreich (==1)?*/
        struct _Behaviour_t *next;					/*!< Naechster Eintrag in der Liste */
     #ifndef DOXYGEN
     	}__attribute__ ((packed)) Behaviour_t;
    Index: include/command.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/command.h,v
    retrieving revision 1.7
    diff -u -r1.7 command.h
    --- include/command.h	8 Mar 2006 14:21:26 -0000	1.7
    +++ include/command.h	24 Mar 2006 12:43:55 -0000
    @@ -36,9 +36,9 @@
      * Request Teil eines Kommandos
      */
     typedef struct {
    -	unsigned char command:8;	/*!< command */
    -	unsigned char subcommand:7;	/*!< subcommand */
    -	unsigned char direction:1;	/*!< 0 ist Anfrage, 1 ist Antwort */
    +	uint8 command:8;	/*!< command */
    +	uint8 subcommand:7;	/*!< subcommand */
    +	uint8 direction:1;	/*!< 0 ist Anfrage, 1 ist Antwort */
     #ifndef DOXYGEN
     	} __attribute__ ((packed)) request_t; // Keine Luecken in der Struktur lassen
     #else
    @@ -49,13 +49,13 @@
      * Kommando
      */
     typedef struct {
    -	unsigned char startCode;	/*!< Markiert den Beginn eines Commands */
    +	uint8 startCode;	/*!< Markiert den Beginn eines Commands */
     	request_t request; 			/*!< Command-ID */
    -	unsigned char  payload;		/*!< Bytes, die dem Kommando noch folgen*/
    +	uint8  payload;		/*!< Bytes, die dem Kommando noch folgen*/
     	int16 data_l;				/*!< Daten zum Kommando links*/
     	int16 data_r;				/*!< Daten zum Kommando rechts*/
     	int16 seq;					/*!< Paket-Sequenznummer*/
    -	unsigned char CRC;			/*!< Markiert das Ende des Commands*/
    +	uint8 CRC;			/*!< Markiert das Ende des Commands*/
     #ifndef DOXYGEN
     	} __attribute__ ((packed)) command_t;// Keine Luecken in der Struktur lassen
     #else
    Index: include/display.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/display.h,v
    retrieving revision 1.7
    diff -u -r1.7 display.h
    --- include/display.h	8 Mar 2006 14:21:26 -0000	1.7
    +++ include/display.h	24 Mar 2006 12:43:55 -0000
    @@ -28,11 +28,11 @@

     #define DISPLAY_LENGTH	20	/*!< Wieviele Zeichen passen in eine Zeile */

    -extern volatile char display_update;		/*!< Muss das Display aktualisiert werden? */
    +extern volatile uint8 display_update;		/*!< Muss das Display aktualisiert werden? */
     #ifdef DISPLAY_SCREENS_AVAILABLE
     	#define DISPLAY_SCREENS	5				/*!< Anzahl der Screens */
     	#define DISPLAY_SCREEN_TOGGLE	42		/*!< Screen-Nummer, die zum wechseln verwendet wird */
    -	extern volatile char display_screen;	/*!< Welcher Screen soll gezeigt werden? */
    +	extern volatile uint8 display_screen;	/*!< Welcher Screen soll gezeigt werden? */
     #endif

     /*!
    Index: include/ena.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/ena.h,v
    retrieving revision 1.4
    diff -u -r1.4 ena.h
    --- include/ena.h	17 Feb 2006 17:22:27 -0000	1.4
    +++ include/ena.h	24 Mar 2006 12:43:55 -0000
    @@ -44,18 +44,18 @@
      * andere werden nicht beeinflusst
      * @param enable Bitmaske der anzuschaltenden LEDs
      */
    -void ENA_on(char enable);
    +void ENA_on(uint8 enable);

     /*!
      * Schaltet einzelne Enable-Leitungen aus,
      * andere werden nicht beeinflusst
      * @param enable Bitmaske der anzuschaltenden LEDs
      */
    -void ENA_off(char enable);
    +void ENA_off(uint8 enable);

     /*!
      * Schaltet die Enable-Leitungen
      * @param enable Wert der eingestellt werden soll
      */
    -void ENA_set(char enable);
    +void ENA_set(uint8 enable);
     #endif
    Index: include/led.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/led.h,v
    retrieving revision 1.4
    diff -u -r1.4 led.h
    --- include/led.h	1 Mar 2006 15:17:49 -0000	1.4
    +++ include/led.h	24 Mar 2006 12:43:55 -0000
    @@ -41,24 +41,24 @@

     /*! Datenfeld fuer den Zugriff auf die LEDs */
     typedef struct {
    -   unsigned char rechts:1;		/*!< LED in Fahrichtung rechts*/
    -   unsigned char links:1; 		/*!< LED in Fahrichtung links*/
    +   uint8 rechts:1;		/*!< LED in Fahrichtung rechts*/
    +   uint8 links:1; 		/*!< LED in Fahrichtung links*/

    -   unsigned char rot:1;   		/*!< LED Rot */
    -   unsigned char orange:1;   	/*!< LED Orange */
    +   uint8 rot:1;   		/*!< LED Rot */
    +   uint8 orange:1;   	/*!< LED Orange */

    -   unsigned char gelb:1;   	/*!< LED Gelb */
    -   unsigned char gruen:1;  	/*!< LED Gruen */
    +   uint8 gelb:1;   	/*!< LED Gelb */
    +   uint8 gruen:1;  	/*!< LED Gruen */

    -   unsigned char tuerkis:1;   	/*!< LED Tuerkis */
    -   unsigned char weiss:1;   	/*!< LED Weiss */
    +   uint8 tuerkis:1;   	/*!< LED Tuerkis */
    +   uint8 weiss:1;   	/*!< LED Weiss */
     #ifndef DOXYGEN
     	} __attribute__ ((packed)) led_t;
     #else
     	} led_t;
     #endif

    -extern volatile char led;
    +extern volatile uint8 led;

     /*!
      * Initialisiert die LEDs
    @@ -69,18 +69,18 @@
      * Zeigt eine 8-Bit Variable mit den LEDs an
      * @param LED Wert der gezeigt werden soll
      */
    -void LED_set(char LED);
    +void LED_set(uint8 LED);

     /*! Schaltet eine LED aus
      *
      * @param LED HEX-Code der LED
      */
    -void LED_off(char LED);
    +void LED_off(uint8 LED);

     /*! Schaltet eine LED an
      *
      * @param LED HEX-Code der LED
      */
    -void LED_on(char LED);
    +void LED_on(uint8 LED);

     #endif
    Index: include/motor.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/motor.h,v
    retrieving revision 1.6
    diff -u -r1.6 motor.h
    --- include/motor.h	17 Mar 2006 17:09:24 -0000	1.6
    +++ include/motor.h	24 Mar 2006 12:43:55 -0000
    @@ -43,8 +43,8 @@

     /*! In diesem Typ steht die Drehrichtung, auch wenn die Speed-Variablen bereits wieder auf Null sind */
     typedef struct {
    -	unsigned char left:1;
    -	unsigned char right:1;
    +	uint8 left:1;
    +	uint8 right:1;
     #ifndef DOXYGEN
     	} __attribute__ ((packed)) direction_t;
     #else
    @@ -76,6 +76,6 @@
      * @param servo Nummer des Servos
      * @param servo Zielwert
      */
    -void servo_set(char servo, char pos);
    +void servo_set(uint8 servo, uint8 pos);

     #endif
    Index: include/mouse.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/mouse.h,v
    retrieving revision 1.4
    diff -u -r1.4 mouse.h
    --- include/mouse.h	20 Feb 2006 20:28:34 -0000	1.4
    +++ include/mouse.h	24 Mar 2006 12:44:01 -0000
    @@ -73,7 +73,7 @@
      * @param adr die Adresse
      * @return das Datum
      */
    -int8 maus_sens_read(char adr);
    +int8 maus_sens_read(uint8 adr);

     #endif
    Index: include/sensor.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/sensor.h,v
    retrieving revision 1.10
    diff -u -r1.10 sensor.h
    --- include/sensor.h	4 Mar 2006 14:54:23 -0000	1.10
    +++ include/sensor.h	24 Mar 2006 12:44:01 -0000
    @@ -46,16 +46,16 @@
     extern volatile int16 sensEncL;		/*!< Encoder linker Motor [-32768 bis 32767] */
     extern volatile int16 sensEncR;		/*!< Encoder rechter Motor [-32768 bis 32767] */

    -extern volatile char sensTrans;		/*!< Sensor Ueberwachung Transportfach [0/1]*/
    +extern volatile uint8 sensTrans;		/*!< Sensor Ueberwachung Transportfach [0/1]*/

    -extern volatile char sensDoor;		/*!< Sensor Ueberwachung Klappe [0/1] */
    +extern volatile uint8 sensDoor;		/*!< Sensor Ueberwachung Klappe [0/1] */

    -extern volatile char sensError;		/*!< Ueberwachung Motor oder Batteriefehler [0/1]  1= alles ok */
    +extern volatile uint8 sensError;		/*!< Ueberwachung Motor oder Batteriefehler [0/1]  1= alles ok */

     extern uint16 RC5_Code;        /*!< Letzter empfangener RC5-Code */

    -extern volatile char sensMouseDX;		/*!< Maussensor Delta X, positive Werte zeigen querab der Fahrtrichtung nach rechts */
    -extern volatile char sensMouseDY;		/*!< Maussensor Delta Y, positive Werte zeigen in Fahrtrichtung */
    +extern volatile int8 sensMouseDX;		/*!< Maussensor Delta X, positive Werte zeigen querab der Fahrtrichtung nach rechts */
    +extern volatile int8 sensMouseDY;		/*!< Maussensor Delta Y, positive Werte zeigen in Fahrtrichtung */

     extern volatile int sensMouseX;		/*!< Mausposition X, positive Werte zeigen querab der Fahrtrichtung nach rechts */
     extern volatile int sensMouseY;		/*!< Mausposition Y, positive Werte zeigen in Fahrtrichtung  */
    Index: include/shift.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/shift.h,v
    retrieving revision 1.3
    diff -u -r1.3 shift.h
    --- include/shift.h	3 Feb 2006 10:54:43 -0000	1.3
    +++ include/shift.h	24 Mar 2006 12:44:01 -0000
    @@ -45,7 +45,7 @@
      * @param latch_data der Pin, an dem der Daten-latch-Pin des Registers (PIN 11) haengt
      * @param latch_store der Pin, an dem der latch-Pin zum Transfer des Registers (PIN 12) haengt
      */
    -void shift_data_out(char data, char latch_data, char latch_store);
    +void shift_data_out(uint8 data, uint8 latch_data, uint8 latch_store);

     /*!
      * Schiebt Daten durch eines der drei 74HC595-Schieberegister,
    @@ -54,7 +54,7 @@
      * @param data	Das Datenbyte
      * @param latch_data der Pin, an dem der Daten-latch-Pin des Registers (PIN 11) haengt
      */
    -void shift_data(char data, char latch_data);
    +void shift_data(uint8 data, uint8 latch_data);

     /*!
      * Setzt die Shift-Register wieder zurueck
    Index: include/uart.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/uart.h,v
    retrieving revision 1.6
    diff -u -r1.6 uart.h
    --- include/uart.h	8 Mar 2006 14:21:26 -0000	1.6
    +++ include/uart.h	24 Mar 2006 12:44:01 -0000
    @@ -39,7 +39,7 @@
      * PrÃ¼ft, ob daten verfÃ¼gbar
      * @return Anzahl der verfuegbaren Bytes
      */
    -char uart_data_available(void);
    +uint8 uart_data_available(void);

     /*!
    @@ -48,7 +48,7 @@
      * TODO: umstellen auf nicht blockierend und mehr als ein Zeichen
      * @param data Das Zeichen
      */
    -void uart_send_byte(char data);
    +void uart_send_byte(uint8 data);

     /*!
      * Sende Kommando per UART im Little Endian
    @@ -64,7 +64,7 @@
      * @param length Groesse des Datenpuffers in bytes
      * @return Anzahl der gesendete Bytes
      */
    -int uart_write(char * data, int length);
    +int uart_write(uint8 * data, int length);

     /* Liest Zeichen von der UART
      * @param data Der Zeiger an die die gelesenen Zeichen kommen
    Index: mcu/adc.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/mcu/adc.c,v
    retrieving revision 1.2
    diff -u -r1.2 adc.c
    --- mcu/adc.c	17 Mar 2006 17:09:24 -0000	1.2
    +++ mcu/adc.c	24 Mar 2006 12:44:01 -0000
    @@ -37,7 +37,7 @@
      * muss das entsprechende Bit in channel gesetzt sein
      * Bit0 = Kanal 0 usw.
      */
    -void adc_init(char channel){
    +void adc_init(uint8 channel){
     	DDRA &= ~ channel;	// Pin als input
     	PORTA &= ~ channel;	// Alle Pullups aus.
     }
    @@ -46,7 +46,7 @@
      * Liest einen analogen Kanal aus
      * @param channel Kanal - hex-Wertigkeit des Pins (0x01 fï¿½r PA0; 0x02 fï¿½r PA1, ..)
      */
    -int adc_read(char channel){
    +int adc_read(uint8 channel){
     	int result = 0x00;

     	// interne Refernzspannung AVCC, rechts Ausrichtung
    Index: mcu/display.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/mcu/display.c,v
    retrieving revision 1.6
    diff -u -r1.6 display.c
    --- mcu/display.c	23 Mar 2006 17:48:58 -0000	1.6
    +++ mcu/display.c	24 Mar 2006 12:44:01 -0000
    @@ -42,9 +42,9 @@
     /*! Puffergroesse fuer eine Zeile in bytes */
     #define DISPLAY_BUFFER_SIZE	(DISPLAY_LENGTH + 1)

    -volatile char display_update=0;	/*!< Muss das Display aktualisiert werden? */
    +volatile uint8 display_update=0;	/*!< Muss das Display aktualisiert werden? */
     #ifdef DISPLAY_SCREENS_AVAILABLE
    -	volatile char display_screen=0;	/*!< Muss das Display aktualisiert werden? */
    +	volatile uint8 display_screen=0;	/*!< Muss das Display aktualisiert werden? */
     #endif
     static char display_buf[DISPLAY_BUFFER_SIZE];	/*!< Pufferstring fuer Displayausgaben */

    @@ -95,7 +95,7 @@
      * Ã?bertrage Kommando an das Display
      * @param cmd Kommando
      */
    -void display_cmd(char cmd){		//ein Kommando cmd an das Display senden
    +void display_cmd(uint8 cmd){		//ein Kommando cmd an das Display senden
     	uint8 i;
     	shift_data_out(cmd,SHIFT_LATCH,SHIFT_REGISTER_DISPLAY);
     	// Enable muss fÃ¼r mind. 450 ns High bleiben, bevor es fallen darf!
    @@ -112,7 +112,7 @@
      * @param data Das Zeichen
      */
     void display_data(char data){ //ein Zeichen aus data in den Displayspeicher schreiben
    -        int i;
    +        uint8 i;
     		shift_data_out(data,SHIFT_LATCH,SHIFT_REGISTER_DISPLAY|DISPLAY_RS);

     		// Enable muss fÃ¼r mind. 450 ns High bleiben, bevor es fallen darf!
    Index: mcu/ena.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/mcu/ena.c,v
    retrieving revision 1.2
    diff -u -r1.2 ena.c
    --- mcu/ena.c	4 Mar 2006 14:54:23 -0000	1.2
    +++ mcu/ena.c	24 Mar 2006 12:44:01 -0000
    @@ -33,7 +33,7 @@
     #ifdef ENA_AVAILABLE

    -volatile char ena =0;	/*!< Sichert den Zustand der Enable-Leitungen */
    +volatile uint8 ena =0;	/*!< Sichert den Zustand der Enable-Leitungen */

     /*!
      * Initialisiert die Enable-Leitungen
    @@ -51,7 +51,7 @@
      * Daher zieht es die entsprechende ENA_XXX-Leitung auf Low und NICHT auf High
      * @param enable Bitmaske der anzuschaltenden LEDs
      */
    -void ENA_on(char enable){
    +void ENA_on(uint8 enable){
     //	int i;
     	ena |= enable;
     	ENA_set(ena);
    @@ -67,7 +67,7 @@
      * Daher zieht es die entsprechende ENA_XXX-Leitung auf High und NICHT auf Low
      * @param enable Bitmaske der anzuschaltenden LEDs
      */
    -void ENA_off(char enable){
    +void ENA_off(uint8 enable){
     	ena &= ~enable;
     	ENA_set(ena);
     }
    @@ -79,7 +79,7 @@
      * Daher zieht es die entsprechende ENA_XXX-Leitung auf ~enable
      * @param LED Wert der gezeigt werden soll
      */
    -void ENA_set(char enable){
    +void ENA_set(uint8 enable){
     	ena=enable;
     	shift_data(~enable,SHIFT_REGISTER_ENA);
     }
    Index: mcu/led.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/mcu/led.c,v
    retrieving revision 1.2
    diff -u -r1.2 led.c
    --- mcu/led.c	17 Mar 2006 17:09:24 -0000	1.2
    +++ mcu/led.c	24 Mar 2006 12:44:02 -0000
    @@ -32,7 +32,7 @@

     #ifdef LED_AVAILABLE

    -volatile char led=0;
    +volatile uint8 led=0;
     /*!
      * Initialisiert die LEDs
      */
    @@ -46,7 +46,7 @@
      * andere werden nicht beeinflusst
      * @param LED Bitmaske der anzuschaltenden LEDs
      */
    -void LED_on(char LED){
    +void LED_on(uint8 LED){
     	led |= LED;
     	LED_set(led);
     }
    @@ -56,7 +56,7 @@
      * andere werden nicht beeinflusst
      * @param LED Bitmaske der anzuschaltenden LEDs
      */
    -void LED_off(char LED){
    +void LED_off(uint8 LED){
     	led &= ~LED;
     	LED_set(led);
     }
    @@ -65,7 +65,7 @@
      * Zeigt eine 8-Bit Variable mit den LEDs an
      * @param LED Wert der gezeigt werden soll
      */
    -void LED_set(char LED){
    +void LED_set(uint8 LED){
     	led=LED;
     	shift_data(led,SHIFT_REGISTER_LED);
     }
    Index: mcu/mouse.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/mcu/mouse.c,v
    retrieving revision 1.3
    diff -u -r1.3 mouse.c
    --- mcu/mouse.c	17 Mar 2006 17:09:24 -0000	1.3
    +++ mcu/mouse.c	24 Mar 2006 12:44:02 -0000
    @@ -45,8 +45,8 @@
      * Ã?bertrÃ¤gt ein Byte an den Sensor
      * @param data das Byte
      */
    -void maus_sens_writeByte(char data){
    -	char i;
    +void maus_sens_writeByte(int8 data){
    +	int8 i;
     	MAUS_DDR  |= MAUS_SDA_PIN; 		// SDA auf Output

     	for (i=7; i>=0; i--){
    @@ -64,7 +64,7 @@
      * Liest ein Byte vom Sensor
      * @return das Byte
      */
    -char maus_sens_readByte(void){
    +int8 maus_sens_readByte(void){
     	int i;
     	char data=0;

    @@ -85,7 +85,7 @@
      * @param adr Adresse
      * @param data Datum
      */
    -void maus_sens_write(char adr, char data){
    +void maus_sens_write(int8 adr, uint8 data){
     	int i;
     	maus_sens_writeByte(adr);
     	maus_sens_writeByte(data);
    @@ -98,7 +98,7 @@
      * @param adr die Adresse
      * @return das Datum
      */
    -int8 maus_sens_read(char adr){
    +int8 maus_sens_read(uint8 adr){
     	int i;
     	maus_sens_writeByte(adr);
     	for (i=0; i<75; i++){asm("nop");}	// mindestens 100 Mikrosekunden Pause!!!
    Index: mcu/sensor-low.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/mcu/sensor-low.c,v
    retrieving revision 1.5
    diff -u -r1.5 sensor-low.c
    --- mcu/sensor-low.c	19 Mar 2006 20:42:51 -0000	1.5
    +++ mcu/sensor-low.c	24 Mar 2006 12:44:02 -0000
    @@ -73,11 +73,11 @@

     #define ENC_ENTPRELL	4		/*!< Nur wenn der Encoder ein paar mal den gleichen wert gibt uebernehmen */

    -volatile char enc_l=0;		/*!< Puffer fuer die letzten Encoder-Staende */
    -volatile char enc_r=0;		/*!< Puffer fuer die letzten Encoder-Staende */
    +volatile uint8 enc_l=0;		/*!< Puffer fuer die letzten Encoder-Staende */
    +volatile uint8 enc_r=0;		/*!< Puffer fuer die letzten Encoder-Staende */

    -volatile char enc_l_cnt=0;	/*!< Entprell-Counter fuer L-Encoder	 */
    -volatile char enc_r_cnt=0;	/*!< Entprell-Counter fuer R-Encoder	 */
    +volatile uint8 enc_l_cnt=0;	/*!< Entprell-Counter fuer L-Encoder	 */
    +volatile uint8 enc_r_cnt=0;	/*!< Entprell-Counter fuer R-Encoder	 */

     /*!
      * Initialisiere alle Sensoren
    Index: mcu/shift.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/mcu/shift.c,v
    retrieving revision 1.1
    diff -u -r1.1 shift.c
    --- mcu/shift.c	3 Feb 2006 10:54:42 -0000	1.1
    +++ mcu/shift.c	24 Mar 2006 12:44:02 -0000
    @@ -53,8 +53,8 @@
      * @param latch_data der Pin an dem der Daten-latch-Pin des Registers (PIN 11) hÃ¤ngt
      * @param latch_store der Pin an dem der latch-Pin zum transfer des Registers (PIN 12) hÃ¤ngt
      */
    -void shift_data_out(char data, char latch_data, char latch_store){
    -	char i;
    +void shift_data_out(uint8 data, uint8 latch_data, uint8 latch_store){
    +	int8 i;

     	SHIFT_PORT &= ~SHIFT_OUT;		// und wieder clear
     	for (i=8; i>0; i--){
    @@ -74,7 +74,7 @@
      * @param data	Das Datenbyte
      * @param latch_data der Pin an dem der Daten-latch-Pin des Registers (PIN 11) hÃ¤ngt
      */
    -void shift_data(char data, char latch_data){
    +void shift_data(uint8 data, uint8 latch_data){
     	shift_data_out(data, latch_data, SHIFT_LATCH);
     	shift_clear();
     }
    Index: mcu/uart.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/mcu/uart.c,v
    retrieving revision 1.5
    diff -u -r1.5 uart.c
    --- mcu/uart.c	8 Mar 2006 14:21:26 -0000	1.5
    +++ mcu/uart.c	24 Mar 2006 12:44:02 -0000
    @@ -45,9 +45,9 @@

     //#define UART_TIMEOUT	20000	/*!< Timeout. Wartet UART_TIMEOUT CPU-Takte */

    -static unsigned char UART_RxBuf[UART_RX_BUFFER_SIZE];	/*!< UART-Puffer */
    -static volatile unsigned char UART_RxHead;				/*!< Zeiger fÃ¼r UART-Puffer */
    -static volatile unsigned char UART_RxTail;				/*!< Zeiger fÃ¼r UART-Puffer */
    +static uint8 UART_RxBuf[UART_RX_BUFFER_SIZE];	/*!< UART-Puffer */
    +static volatile uint8 UART_RxHead;				/*!< Zeiger fÃ¼r UART-Puffer */
    +static volatile uint8 UART_RxTail;				/*!< Zeiger fÃ¼r UART-Puffer */

     //char uart_timeout;	/*!< 0, wenn uart_read/uart_send erfolgreich 1, wenn timeout erreicht */

    @@ -94,7 +94,7 @@
      * PrÃ¼ft, ob daten verfÃ¼gbar
      * @return Anzahl der verfuegbaren Bytes
      */
    -char uart_data_available(void){
    +uint8 uart_data_available(void){
     	if (UART_RxHead == UART_RxTail) 	/* Puffer leer */
     		return 0;
     	else if (UART_RxHead > UART_RxTail)		/* Schreibzeiger vor Lesezeiger */
    @@ -110,7 +110,7 @@
      * TODO: umstellen auf nicht blockierend und mehr als ein Zeichen
      * @param data Das Zeichen
      */
    -void uart_send_byte(char data){ // Achtung ist noch blockierend!!!!
    +void uart_send_byte(uint8 data){ // Achtung ist noch blockierend!!!!
     	while ((UCSRA & _BV(UDRE)) ==0){}	// warten bis UART sendebereit
     	UDR= data;
     }
    @@ -139,7 +139,7 @@
      * @param length Groesse des Datenpuffers in bytes
      * @return Anzahl der gesendete Bytes
      */
    -int uart_write(char * data, int length){
    +int uart_write(uint8 * data, int length){
     	int i;
     	char * ptr = (char*) data;
     	for (i=0; i<length; i++)
    Index: pc/display_pc.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/pc/display_pc.c,v
    retrieving revision 1.8
    diff -u -r1.8 display_pc.c
    --- pc/display_pc.c	5 Mar 2006 12:33:41 -0000	1.8
    +++ pc/display_pc.c	24 Mar 2006 12:44:03 -0000
    @@ -50,9 +50,9 @@
     /*! Puffergroesse fuer eine Zeile in bytes */
     #define DISPLAY_BUFFER_SIZE	(DISPLAY_LENGTH + 1)

    -volatile char display_update=0;	/*!< Muss das Display aktualisiert werden? */
    +volatile uint8 display_update=0;	/*!< Muss das Display aktualisiert werden? */
     #ifdef DISPLAY_SCREENS_AVAILABLE
    -	volatile char display_screen=0;	/*!< Muss das Display aktualisiert werden? */
    +	volatile uint8 display_screen=0;	/*!< Muss das Display aktualisiert werden? */
     #endif

     char display_buf[DISPLAY_BUFFER_SIZE];	/*!< Pufferstring fuer Displayausgaben */
    Index: pc/led_pc.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/pc/led_pc.c,v
    retrieving revision 1.3
    diff -u -r1.3 led_pc.c
    --- pc/led_pc.c	1 Mar 2006 15:17:49 -0000	1.3
    +++ pc/led_pc.c	24 Mar 2006 12:44:03 -0000
    @@ -32,7 +32,7 @@
     #include "led.h"

     #ifdef LED_AVAILABLE
    -volatile char led=0;			/*!< Status der LEDs */
    +volatile uint8 led=0;			/*!< Status der LEDs */
     /*!
      * Initialisiert die LEDs
      */
    @@ -44,7 +44,7 @@
      * andere werden nicht beeinflusst
      * @param LED Bitmaske der anzuschaltenden LEDs
      */
    -void LED_on(char LED){
    +void LED_on(uint8 LED){
     	led |= LED;
     	LED_set(led);
     }
    @@ -54,7 +54,7 @@
      * andere werden nicht beeinflusst
      * @param LED Bitmaske der anzuschaltenden LEDs
      */
    -void LED_off(char LED){
    +void LED_off(uint8 LED){
     	led &= ~LED;
     	LED_set(led);
     }
    @@ -63,7 +63,7 @@
      * Zeigt eine 8-Bit-Variable mit den LEDs an
      * @param LED Wert, der gezeigt werden soll
      */
    -void LED_set(char LED){
    +void LED_set(uint8 LED){
     	int16 led=LED;
     	command_write(CMD_AKT_LED, SUB_CMD_NORM ,&led,&led);
     }

- Antworten:
  - Re: [ct-bot] signed vs. unsigned char
    - From: Markus Hennecke
  - Re: [ct-bot] signed vs. unsigned char
    - From: Benjamin Benz

- Referenzen:
  - [ct-bot] signed vs. unsigned char
    - From: Markus Hennecke
  - Re: [ct-bot] signed vs. unsigned char
    - From: Benjamin Benz
  - Re: [ct-bot] signed vs. unsigned char
    - From: Fabian Recktenwald
  - Re: [ct-bot] signed vs. unsigned char
    - From: Benjamin Benz

- Voriger (Datum): Re: [ct-bot] rc5_bot_next_behaviour -> Toggle Fehler, Benjamin Benz
- Nächster (Datum): Re: [ct-bot] signed vs. unsigned char, Markus Hennecke
- Voriger (Thread): Re: [ct-bot] signed vs. unsigned char, Benjamin Benz
- Nächster (Thread): Re: [ct-bot] signed vs. unsigned char, Markus Hennecke
- Indizes:
  - Datum
  - Thread