c't

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);
 }