ok haut hin!
danke
aber jetzt muss ich euch weiterlöchern
thema PCDemo
also wenn ich
ins text.c einfügeCode:#include "asuro.h" #include <stdlib.h> #define OFFSET 0x3F #define STEP 5 #define RWD_KEY '2' #define FWD_KEY '8' #define LEFT_KEY '4' #define RIGHT_KEY '6' #define STOP_KEY '5' volatile unsigned char switchPressed; int speedLeft,speedRight; SIGNAL (SIG_INTERRUPT1) { unsigned int i; DDRD |= SWITCHES; // Switches as Output SWITCH_ON; // Output HIGH for measurement ADMUX = (1 << REFS0) | SWITCH; // AVCC reference with external capacitor for (i = 0; i < 0xFE; i++); ADCSRA |= (1 << ADSC); // Start conversion while (!(ADCSRA & (1 << ADIF))); // wait for conversion complete ADCSRA |= (1 << ADIF); // clear ADCIF i = ADCL + (ADCH << 8); // und ab gehts --- fahr zurück MotorDir(RWD,RWD); MotorSpeed(200,200); FrontLED(ON); BackLED(ON,ON); for (i = 0; i < 0xFFFD; i++); // Sleep does not work here switchPressed = TRUE; SWITCH_OFF; DDRD &= ~SWITCHES; // Switches as Input => ext. Int 1 } void PCFwd(void) { speedRight += STEP; speedLeft += STEP; if (speedLeft < 0 && speedLeft >= -OFFSET) speedLeft = 1; if (speedRight < 0 && speedRight >= -OFFSET) speedRight = 1; FrontLED(ON); BackLED(OFF,OFF); } void PCRwd(void) { speedRight -= STEP; speedLeft -= STEP; if (speedRight > 0 && speedRight <= OFFSET) speedRight = -1; if (speedLeft > 0 && speedLeft <= OFFSET) speedLeft = -1; FrontLED(OFF); BackLED(ON,ON); } void PCLeft (void) { speedLeft -= STEP; if (speedLeft > 0 && speedLeft <= OFFSET) speedLeft = -1; speedRight += STEP; if (speedRight < 0 && speedRight >= -OFFSET) speedRight = 1; FrontLED(OFF); BackLED(ON,OFF); } void PCRight (void) { speedLeft += STEP; if (speedLeft < 0 && speedLeft >= -OFFSET) speedLeft = 1; speedRight -= STEP; if (speedRight > 0 && speedRight <= OFFSET) speedRight = -1; FrontLED(OFF); BackLED(OFF,ON); } void PCStop(void) { speedRight = speedLeft = 0; FrontLED(OFF); BackLED(OFF,OFF); } void PCDemo(void) { unsigned char cmd; unsigned char leftDir = FWD, rightDir = FWD; Init(); StartSwitch(); sei(); for(;;) { cmd = 0; SerRead(&cmd,1,0xFFFE); switch (cmd) { case RWD_KEY : PCRwd(); break; case FWD_KEY : PCFwd(); break; case LEFT_KEY : PCLeft(); break; case RIGHT_KEY : PCRight(); break; case STOP_KEY : PCStop(); break; } if (speedLeft > 0 && speedLeft < OFFSET) speedLeft += OFFSET; if (speedLeft < 0 && speedLeft > -OFFSET) speedLeft -= OFFSET; if (speedRight > 0 && speedRight < OFFSET) speedRight += OFFSET; if (speedRight < 0 && speedRight > -OFFSET) speedRight -= OFFSET; if (switchPressed) { speedLeft = 0; speedRight = 0; switchPressed = FALSE; } leftDir = rightDir = FWD; if (speedLeft < 0) leftDir = RWD; if (speedRight < 0) rightDir = RWD; if (speedLeft > 255) speedLeft = 255; if (speedLeft < -255) speedLeft = -255; if (speedRight > 255) speedRight = 255; if (speedRight < -255) speedRight = -255; MotorDir(leftDir,rightDir); MotorSpeed(abs(speedLeft),abs(speedRight)); } }
habe ich danach folgenden Fehler:
könntet ihr euch das mal anschauen was zu ändern is?C:\ASURO_src\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c -o asuro.o
avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -lm
C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\lib\avr4\crtm8.o(.in it9+0x0): undefined reference to `main'
make: *** [test.elf] Error 1
> Process Exit Code: 2
bitte, danke!
mfg
Lesezeichen