
Zitat von
stochri
Code:
#include "asuro.h" // bitte die neue Datei benutzen
// asuro.h und asuro.c vom 31.03.05
#define aus MotorDir(BREAK,BREAK)
#define go {MotorSpeed(150,150);MotorDir(FWD,FWD);}
#define backturn { MotorSpeed(150,250);MotorDir(RWD,RWD);Msleep(1000);}
/*************************************************************************************
ASURO discovers your apartment
program made by stochri july, 2005
*************************************************************************************/
int speed()
{
int rightspeed,leftspeed;
int leftold,rightold;
Encoder_Set(0,0); // reset encoder
leftold=encoder[LEFT];
rightold=encoder[RIGHT];
Msleep(300);
leftspeed=encoder[LEFT]-leftold;
rightspeed=encoder[RIGHT]-rightold;
//SerWrite(" speed Left,Right ",19);
//PrintInt(leftspeed);
//PrintInt(rightspeed);
return leftspeed+rightspeed;
}
int main(void)
{
int n,v,nullspeed;
Init();
Encoder_Init();
StatusLED(OFF);
SerWrite("\n\rASURO OK\n\r",8);
go;
Msleep(500);
nullspeed=speed()-10;
while(1)
{
v=speed();
SerWrite("\n\r speed ",9);
PrintInt(v);
if(v<nullspeed)
{
backturn;
go;
Msleep(500);
}
}
return 0;
}
Das Ziel des Verfahrens war es, dem Asuro eine Art "Gefühl" beizubringen. Der Asuro merkt sozusagen, dass die Belastun seiner Motoren zu hoch wird und fährt dann in einer Kurve rückwärts.
Das Interessante an diesem Verfahren ist, dass der Asuro so durch die ganze Wohnung fahren kann, was bei einer Methode bei der nur die Tasten abgefragt werden, nicht funktioniert.
[/quote]
Hallo! Ich bekomme folgenden Fehlermeldung beim erstellen der HEX file!
Code:
"-------- 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 -DF_CPU=8000000UL -I. -g -Os -I../../lib/inc -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 -DF_CPU=8000000UL -I. -g -Os -I../../lib/inc -funsigned
-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes
-Wa,-ahlms=../../lib/asuro.lst ../../lib/asuro.c -o asuro.o
avr-gcc -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I../../lib/inc -funsigned-ch
ar -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -W
a,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -L..
/../lib -lm -lasuro
C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\bin\ld.exe: BFD 2.14 2003
0612 + coff-avr-patch (20030831) internal error, aborting at ../../bfd/reloc.c l
ine 444 in bfd_get_reloc_size
C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\bin\ld.exe: Please report
this bug.
make: *** [test.elf] Error 1"
Wenn ich die Methoden "EncoderInit, EncoderSet, EncoderStar, EncoderStop" funktioniert das HEX file erstellen?
Lesezeichen