heise online · c't · iX · Technology Review · Telepolis · mobil · Security · Netze · heise open · heise resale · Autos · c't-TV · Jobs · Kiosk
Zum Inhalt
c't

c't Projekte - c't-Bot und c't-Sim - Mailinglisten

c't-Bot und c't-Sim


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

[ct-bot] SERVO_MIDDLE klappt nicht

Absender: Carsten Giesen
Datum: Sa, 29.04.2006 23:28:36


Hallo Zusammen,

Ich spiele gerade ein wenig mit dem Servo rum.
Neben rechst und links Anschlag wollte ich jetzt auf die PLAY Taste die
Mittel-Stellung legen:

	{ RC5_CODE_PLAY,	rc5_bot_servo,			{ SERVO1,
SERVO_MIDDLE } },

Das gibt aber folgenden Fehler:
Building file: ../rc5.c
Invoking: GCC C Compiler
avr-gcc -DMCU -ID:\c't\Eclipse\ct-Bot -ID:\c't\Eclipse\ct-Bot/include
-ID:\WinAVR\avr\include -O0 -Os -g3 -Wall -c -fmessage-length=0
-mmcu=atmega32 -Wstrict-prototypes -orc5.o ../rc5.c
../rc5.c:144: error: `SERVO' undeclared here (not in a function)
../rc5.c:144: error: `LEFT' undeclared here (not in a function)
../rc5.c:144: error: initializer element is not constant
../rc5.c:144: error: (near initialization for
`gRemCtrlAction[18].par.value2')
../rc5.c:144: error: initializer element is not constant
../rc5.c:144: error: (near initialization for `gRemCtrlAction[18].par')
../rc5.c:144: error: initializer element is not constant
../rc5.c:144: error: (near initialization for `gRemCtrlAction[18]')
../rc5.c:149: error: initializer element is not constant
../rc5.c:149: error: (near initialization for `gRemCtrlAction[19].par')
../rc5.c:149: error: initializer element is not constant
../rc5.c:149: error: (near initialization for `gRemCtrlAction[19]')
../rc5.c:150: error: initializer element is not constant
../rc5.c:150: error: (near initialization for `gRemCtrlAction[20].par')
../rc5.c:150: error: initializer element is not constant
../rc5.c:150: error: (near initialization for `gRemCtrlAction[20]')
../rc5.c:151: error: initializer element is not constant
../rc5.c:151: error: (near initialization for `gRemCtrlAction[21].par')
../rc5.c:151: error: initializer element is not constant
../rc5.c:151: error: (near initialization for `gRemCtrlAction[21]')
../rc5.c:152: error: initializer element is not constant
../rc5.c:152: error: (near initialization for `gRemCtrlAction[22].par')
../rc5.c:152: error: initializer element is not constant
../rc5.c:152: error: (near initialization for `gRemCtrlAction[22]')
../rc5.c:153: error: initializer element is not constant
../rc5.c:153: error: (near initialization for `gRemCtrlAction[23].par')
../rc5.c:153: error: initializer element is not constant
../rc5.c:153: error: (near initialization for `gRemCtrlAction[23]')
make: *** [rc5.o] Error 1

Das klappt dagegen:
	{ RC5_CODE_PLAY,	rc5_bot_servo,			{ SERVO1, 6
} },

#define SERVO_LEFT 	8			/*!< Linker Anschlag des
Servos */
#define SERVO_RIGHT	20			/*!< Linker Anschlag des
Servos */

Aber diese Zeile ist auch nicht ganz richtig ;)

#define SERVO_MIDDLE   ((SERVO_RIGHT- SERVO-LEFT)/2)	/*!< Mittelstellung
des Servos */

Ergebniss ist 6 bei meinen Werten, es fehlt nämlich ein +SERVO_LEFT damit
ich wirklich die Mitte habe.
Was aber nicht hilft, da SERVO_MIDDLE ja nicht genommen wird.

Ich kann aber diese Zeile in

#define SERVO_MIDDLE   12	/*!< Mittelstellung des Servos */

Ändern, dann klapps auch. Also muss die Formel im Weg sein!

Gruß

Carsten


Copyright © 2007 Heise Zeitschriften Verlag Kritik, Anregungen bitte an c't-WWW Datenschutzhinweis   Impressum