From 29618453d22c694a0dcb9541b2cea3ee32928fbb Mon Sep 17 00:00:00 2001 From: sicarius Date: Wed, 14 Feb 2007 17:47:03 +0000 Subject: [PATCH] Code-Work by Marian --- source/AVR_Studio/Soccer/Soccer.aps | 2 +- source/AVR_Studio/Soccer/Soccer.c | 5 +- source/AVR_Studio/Soccer/default/Makefile | 8 +- source/AVR_Studio/Soccer/default/Soccer.elf | Bin 71725 -> 86146 bytes source/AVR_Studio/Soccer/default/Soccer.hex | 2077 +++++++++-------- .../AVR_Studio/Soccer/default/dep/Soccer.o.d | 14 +- .../Soccer/default/dep/ballsensor.o.d | 7 +- .../AVR_Studio/Soccer/default/dep/board.o.d | 7 +- .../AVR_Studio/Soccer/default/dep/global.o.d | 5 +- source/AVR_Studio/Soccer/default/dep/i2c.o.d | 4 +- .../AVR_Studio/Soccer/default/dep/keylcd.o.d | 4 +- .../Soccer/default/dep/maussensor.o.d | 5 +- .../Soccer/default/dep/navigation.o.d | 13 +- .../AVR_Studio/Soccer/default/dep/sensor.o.d | 22 +- source/AVR_Studio/Soccer/global.h | 11 + source/AVR_Studio/Soccer/hal/board.c | 23 + source/AVR_Studio/Soccer/hal/board.h | 10 +- source/AVR_Studio/Soccer/hal/maussensor.c | 14 +- source/AVR_Studio/Soccer/hal/maussensor.h | 4 +- source/AVR_Studio/Soccer/navigation.c | 9 +- source/AVR_Studio/Soccer/sensor/ballsensor.c | 13 +- source/AVR_Studio/Soccer/sensor/ballsensor.h | 4 +- source/AVR_Studio/Soccer/sensor/sensor.c | 10 +- source/AVR_Studio/Soccer/sensor/sensor.h | 7 +- 24 files changed, 1266 insertions(+), 1012 deletions(-) diff --git a/source/AVR_Studio/Soccer/Soccer.aps b/source/AVR_Studio/Soccer/Soccer.aps index 09677cb..04830f4 100755 --- a/source/AVR_Studio/Soccer/Soccer.aps +++ b/source/AVR_Studio/Soccer/Soccer.aps @@ -1 +1 @@ -Soccer07-Feb-2007 15:43:1213-Feb-2007 17:28:05241007-Feb-2007 15:43:1244, 12, 0, 462AVR GCCdefault\Soccer.elfY:\AVR_Studio\Soccer\AVR SimulatorATmega128falseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000Soccer.chal\board.chal\keylcd.chal\i2c.cglobal.chal\uart.cnavigation.csensor\sensor.csensor\ballsensor.chal\maussensor.chal\board.hhal\keylcd.hhal\i2c.hglobal.hhal\uart.hnavigation.hsensor\sensor.hsensor\ballsensor.hhal\maussensor.hdefaultNOatmega128100Soccer.elfdefault\1-Wall -gdwarf-2 -DF_CPU=16000000ULUL -O3 -fsigned-chardefault0C:\WinAVR\bin\avr-g++.exeC:\WinAVR\utils\bin\make.exeY:\AVR_Studio\Soccer\hal\board.hY:\AVR_Studio\Soccer\hal\keylcd.hY:\AVR_Studio\Soccer\hal\i2c.hY:\AVR_Studio\Soccer\global.hY:\AVR_Studio\Soccer\hal\uart.hY:\AVR_Studio\Soccer\navigation.hY:\AVR_Studio\Soccer\sensor\sensor.hY:\AVR_Studio\Soccer\sensor\ballsensor.hY:\AVR_Studio\Soccer\hal\maussensor.hY:\AVR_Studio\Soccer\Soccer.cY:\AVR_Studio\Soccer\hal\board.cY:\AVR_Studio\Soccer\hal\keylcd.cY:\AVR_Studio\Soccer\hal\i2c.cY:\AVR_Studio\Soccer\global.cY:\AVR_Studio\Soccer\hal\uart.cY:\AVR_Studio\Soccer\navigation.cY:\AVR_Studio\Soccer\sensor\sensor.cY:\AVR_Studio\Soccer\sensor\ballsensor.cY:\AVR_Studio\Soccer\hal\maussensor.c00000Soccer.c100001hal\board.c100002hal\keylcd.h100003hal\keylcd.c100004hal\i2c.h100005hal\i2c.c100006global.h100007global.c100008c:\WinAVR\avr\include\avr\iom128.h100009hal\board.h100010hal\uart.c100011navigation.h100012hal\uart.h100013navigation.c100014sensor\sensor.h100015sensor\sensor.c100016sensor\ballsensor.h100017sensor\ballsensor.c100018c:\WinAVR\avr\include\stdlib.h100019c:\WinAVR\avr\include\avr\signal.h100020hal\maussensor.h100021hal\maussensor.c1187 110 819 38028 1296 70 1022 525190 0251 202 997 4446 20163 86 909 32826 0278 58 780 34554 29284 62 1010 51713 0159 56 971 44829 0290 66 1016 5218 0376 208 1006 513769 0313 123 943 4285 0294 96 924 401277 0316 125 946 4300 0338 154 968 4590 0360 183 990 48842 0382 212 1012 5175 17293 68 1019 5232 0316 125 946 43013 28338 154 968 45927 18360 183 990 488115 0385 214 1015 51935 0303 102 933 40746 0299 72 1025 52751 27Maximized +Soccer07-Feb-2007 15:43:1214-Feb-2007 18:24:30241007-Feb-2007 15:43:1244, 12, 0, 462AVR GCCdefault\Soccer.elfY:\AVR_Studio\Soccer\AVR SimulatorATmega128falseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000Soccer.chal\board.chal\keylcd.chal\i2c.cglobal.chal\uart.cnavigation.csensor\sensor.csensor\ballsensor.chal\maussensor.csensor\position.csensor\abstand.chal\board.hhal\keylcd.hhal\i2c.hglobal.hhal\uart.hnavigation.hsensor\sensor.hsensor\ballsensor.hhal\maussensor.hsensor\position.hsensor\abstand.hdefaultNOatmega128100Soccer.elfdefault\1-Wall -gdwarf-2 -DF_CPU=16000000ULUL -O3 -fsigned-chardefault0C:\WinAVR\bin\avr-g++.exeC:\WinAVR\utils\bin\make.exeY:\AVR_Studio\Soccer\hal\board.hY:\AVR_Studio\Soccer\hal\keylcd.hY:\AVR_Studio\Soccer\hal\i2c.hY:\AVR_Studio\Soccer\global.hY:\AVR_Studio\Soccer\hal\uart.hY:\AVR_Studio\Soccer\navigation.hY:\AVR_Studio\Soccer\sensor\sensor.hY:\AVR_Studio\Soccer\sensor\ballsensor.hY:\AVR_Studio\Soccer\hal\maussensor.hY:\AVR_Studio\Soccer\sensor\position.hY:\AVR_Studio\Soccer\sensor\abstand.hY:\AVR_Studio\Soccer\Soccer.cY:\AVR_Studio\Soccer\hal\board.cY:\AVR_Studio\Soccer\hal\keylcd.cY:\AVR_Studio\Soccer\hal\i2c.cY:\AVR_Studio\Soccer\global.cY:\AVR_Studio\Soccer\hal\uart.cY:\AVR_Studio\Soccer\navigation.cY:\AVR_Studio\Soccer\sensor\sensor.cY:\AVR_Studio\Soccer\sensor\ballsensor.cY:\AVR_Studio\Soccer\hal\maussensor.cY:\AVR_Studio\Soccer\sensor\position.cY:\AVR_Studio\Soccer\sensor\abstand.c00000Soccer.c100001hal\board.c100002hal\keylcd.h100003hal\keylcd.c100004hal\i2c.h100005hal\i2c.c100006global.h100007global.c100008c:\WinAVR\avr\include\avr\iom128.h100009hal\board.h100010hal\uart.c100011navigation.h100012hal\uart.h100013navigation.c100014sensor\sensor.h100015sensor\sensor.c100016sensor\ballsensor.h100017sensor\ballsensor.c100018c:\WinAVR\avr\include\stdlib.h100019c:\WinAVR\avr\include\avr\signal.h100020hal\maussensor.h100021hal\maussensor.c100022sensor\position.h100023sensor\position.c100024sensor\abstand.h100025sensor\abstand.c1299 72 1025 52727 13Maximized293 68 1019 523108 6248 200 994 4426 0160 84 906 32626 0275 56 777 34354 0281 60 1007 51513 0156 54 968 44626 13287 64 1013 5198 0373 206 1003 511769 0310 121 940 42636 24291 94 921 399277 0313 123 943 4283 0335 152 965 4570 0357 181 987 48642 41379 210 1009 5156 20290 66 1016 52112 58313 123 943 42814 16335 152 965 45740 29357 181 987 486115 0382 212 1012 51735 0300 100 930 405116 22296 70 1022 52527 5347 160 977 46518 11369 189 999 49427 0391 218 1021 5237 3303 102 933 40720 23 diff --git a/source/AVR_Studio/Soccer/Soccer.c b/source/AVR_Studio/Soccer/Soccer.c index c1a8129..52bcd06 100755 --- a/source/AVR_Studio/Soccer/Soccer.c +++ b/source/AVR_Studio/Soccer/Soccer.c @@ -23,8 +23,9 @@ int main() { board.motor(1, speed); board.motor(2, speed); board.motor(3, speed); - PORTB |= (1 << PB5) | (1 << PB7); // Setze PWM-Ports auf high - PORTE |= (1 << PE3) | (1 << PE4); + PORTB |= (1 << PB5) | (1 << PB6); // Setze PWM-Ports auf high + PORTE |= (1 << PE3); // | (1 << PE4); + PORTA |= (1 << PA4); // | (1 << PA5); //sleep(10); while(true) { sleep(1); } /*sleep(10); diff --git a/source/AVR_Studio/Soccer/default/Makefile b/source/AVR_Studio/Soccer/default/Makefile index 4996ec9..1ea98b9 100755 --- a/source/AVR_Studio/Soccer/default/Makefile +++ b/source/AVR_Studio/Soccer/default/Makefile @@ -34,7 +34,7 @@ HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 ## Objects that must be built in order to link -OBJECTS = Soccer.o board.o keylcd.o i2c.o global.o uart.o navigation.o sensor.o ballsensor.o maussensor.o +OBJECTS = Soccer.o board.o keylcd.o i2c.o global.o uart.o navigation.o sensor.o ballsensor.o maussensor.o position.o abstand.o ## Objects explicitly added by the user LINKONLYOBJECTS = @@ -73,6 +73,12 @@ ballsensor.o: ../sensor/ballsensor.c maussensor.o: ../hal/maussensor.c $(CC) $(INCLUDES) $(CFLAGS) -c $< +position.o: ../sensor/position.c + $(CC) $(INCLUDES) $(CFLAGS) -c $< + +abstand.o: ../sensor/abstand.c + $(CC) $(INCLUDES) $(CFLAGS) -c $< + ##Link $(TARGET): $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET) diff --git a/source/AVR_Studio/Soccer/default/Soccer.elf b/source/AVR_Studio/Soccer/default/Soccer.elf index 698e83aaec399f86e5bb44a8361ca75ea59cc9f4..75a4f4ae07475ee64cf5493d87ea9b200a9285bc 100755 GIT binary patch literal 86146 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 literal 71725 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≫8gKT+dkZcHll?0wdk-Zls^4A!~{=4Wn-JxjcNqxy)5Ch%HR!eOWuai z%+MQ!Pi#>Hy_`3h{ua9DDD{@O>)>?KhYw}c@?J_p5 zk?^!009(e`Bz|%u?s#9opmbEz!h22Xi{Ey-VzfYZJ(;(=)D^pp0-GSBXm7>n&sa{@( zR%mkNTUVcLNbZe{7Yr`ireX0F0rK)0mANk=Vzh~Vq~2@AYEyMg&irG8>K6{rz76`S zp`o2>-D?e|1z{%nMp0bHSliBAm>jxnn6t@k8%n(W(Rt>sThfl8{S!0eVK)k@Kd^Sw z2D-}D-0}c)b+66})GYCZMFXLZ%bk;L0=1^@X|_Af_85jc1+OkfvV1j-;9SSNOqi>; z1jkP7dGZO*8ducT^h5-t+Iy=;>C zHshn9a 3)) return result; // Ungültige Nummern rausfiltern + + // Sende zunächst einen Impuls aus + ABSTAND_DDR |= (1 << i); // Konfiguriere Pin als Ausgang + ABSTAND_PORT |= (1 << i); // Und setze ihn auf High + usleep(10); // Warte jetzt 10us + ABSTAND_PORT &= ~(1 << i); // Und setze den Pin wieder auf Low + ABSTAND_DDR &= ~(1 << i); // Konfiguriere Pin als Eingang + + // Jetzt warten wir auf die Antwort vom Sensor + while(!(ABSTAND_PIN & i)) {} // während er low ist nichts machen + while(ABSTAND_PIN & i) { // Und während er high ist + result++; //schleifendurchläufe zähenlen (unsauber, ich weiß) + asm volatile("nop"); // ein ganz bisschen warten + } + + // Die Zahl der Schleifendurchläufe geben wir dann zurück + return result; +} + void Board::beep(int freq) { beepFreq = freq; } diff --git a/source/AVR_Studio/Soccer/hal/board.h b/source/AVR_Studio/Soccer/hal/board.h index 03df24f..445ffa4 100755 --- a/source/AVR_Studio/Soccer/hal/board.h +++ b/source/AVR_Studio/Soccer/hal/board.h @@ -5,6 +5,7 @@ #include #include #include "uart.h" +#include "../global.h" //#define abs(a) ((a < 0)? -a : a) @@ -31,6 +32,11 @@ #define DRIBBLER_A (1 << 2) #define DRIBBLER_B (1 << 3) +// Definiere Konstanten für Abstandsensoren +#define ABSTAND_PORT PORTC +#define ABSTAND_DDR DDRC +#define ABSTAND_PIN PINC + #define UART_BAUD_RATE 9600 class Board @@ -40,7 +46,9 @@ public: Board(); ~Board(); - int GetADC(uint8_t channel); + int GetADC(uint8_t channel); + int GetAbstand(int i); + void beep(int freq); void ledOn(); void ledOff(); diff --git a/source/AVR_Studio/Soccer/hal/maussensor.c b/source/AVR_Studio/Soccer/hal/maussensor.c index 2768b8e..258e083 100755 --- a/source/AVR_Studio/Soccer/hal/maussensor.c +++ b/source/AVR_Studio/Soccer/hal/maussensor.c @@ -1,6 +1,15 @@ #include "maussensor.h" -Maussensor::Maussensor(int index) { +Maussensor::Maussensor() { +} + + +Maussensor::~Maussensor() { +} + + +// Initialisiert den Maussensor +void Maussensor::init(int index) { // Setze die Pins entsprechend dem übergebenen Index if(index == MAUSSENSOR0) { sda_pin = MAUS0_SDA; @@ -15,9 +24,6 @@ Maussensor::Maussensor(int index) { maus_sens_init(); } -Maussensor::~Maussensor() { -} - // Gibt die X-Koordinate Zurück uint8 Maussensor::GetX() { return maus_sens_read(MOUSE_DELTA_X_REG); diff --git a/source/AVR_Studio/Soccer/hal/maussensor.h b/source/AVR_Studio/Soccer/hal/maussensor.h index 2abb8bd..5701808 100755 --- a/source/AVR_Studio/Soccer/hal/maussensor.h +++ b/source/AVR_Studio/Soccer/hal/maussensor.h @@ -111,9 +111,11 @@ void maus_image_prepare(void); */ public: - Maussensor(int index); + Maussensor(); ~Maussensor(); + void init(int index); + uint8 GetX(); uint8 GetY(); uint8 GetSqual(); diff --git a/source/AVR_Studio/Soccer/navigation.c b/source/AVR_Studio/Soccer/navigation.c index 6bf5d4d..f2c1d1c 100755 --- a/source/AVR_Studio/Soccer/navigation.c +++ b/source/AVR_Studio/Soccer/navigation.c @@ -2,10 +2,11 @@ // Initialisiert die Klasse Navigation::Navigation() { + // Am Anfang stehen wir an der Stelle richtung = 0; ausrichtung = 0; geschwindigkeit = 0; - Aktualisieren(); + Aktualisieren(); // und änderungen anwenden } Navigation::~Navigation() { } @@ -27,11 +28,11 @@ void Navigation::SetzeGeschwindigkeit(int nGeschwindigkeit) { // Aktualieren ohne Parameter void Navigation::Aktualisieren() { // Richtung in x und y-Kompontente zerlegen - int y = (int)cos(richtung); // richtung ist winkel - int x = (int)sin(richtung); + float y = cos(richtung); // richtung ist winkel + float x = sin(richtung); // Abweichung der Ausrichtung ermitteln(als winkel) - int w = sensor.getAusrichtung() - ausrichtung; + int w = sensor.GetAusrichtung() - ausrichtung; // Stärke der einzelnen Motoren berechnen float v0 = x; diff --git a/source/AVR_Studio/Soccer/sensor/ballsensor.c b/source/AVR_Studio/Soccer/sensor/ballsensor.c index af9434b..8136581 100755 --- a/source/AVR_Studio/Soccer/sensor/ballsensor.c +++ b/source/AVR_Studio/Soccer/sensor/ballsensor.c @@ -10,12 +10,19 @@ Ballsensor::Ballsensor() { winkel[5] = 260; winkel[6] = 300; winkel[7] = 330; + + // Der Winkel ist erstmal 0 + ballwinkel = 0; } Ballsensor::~Ballsensor() { } -int Ballsensor::getBallwinkel() { +int Ballsensor::GetBallwinkel() { + return ballwinkel; +} + +void Ballsensor::Aktualisieren() { // Erstelle ein Array für die Sensorwerte int sensor[NUM_BALLSENSOR]; int result = 0; // und einer Variable fürs Ergebnis @@ -30,6 +37,6 @@ int Ballsensor::getBallwinkel() { if(sensor[i] < current) result = i; // Ergebnis ist erstmal index } - // Gebe den Winkel zum index result zurück - return winkel[result]; + // Setze den Winkel zum index result + ballwinkel = winkel[result]; } diff --git a/source/AVR_Studio/Soccer/sensor/ballsensor.h b/source/AVR_Studio/Soccer/sensor/ballsensor.h index 5fa7f08..5190a87 100755 --- a/source/AVR_Studio/Soccer/sensor/ballsensor.h +++ b/source/AVR_Studio/Soccer/sensor/ballsensor.h @@ -12,11 +12,13 @@ class Ballsensor { private: int winkel[NUM_BALLSENSOR]; + int ballwinkel; public: Ballsensor(); ~Ballsensor(); - int getBallwinkel(); // Gibt den aktuellen Winkel vom Ball zurück + int GetBallwinkel(); // Gibt den aktuellen Winkel vom Ball zurück + void Aktualisieren(); // Aktualisiert die Variable }; #endif diff --git a/source/AVR_Studio/Soccer/sensor/sensor.c b/source/AVR_Studio/Soccer/sensor/sensor.c index a1730db..78326ee 100755 --- a/source/AVR_Studio/Soccer/sensor/sensor.c +++ b/source/AVR_Studio/Soccer/sensor/sensor.c @@ -6,10 +6,14 @@ Sensor::Sensor() :ballsensor() { Sensor::~Sensor() { } +// Aktualisiert die ganzen Sachen ;) void Sensor::Aktualisieren() { - + position.Aktualisieren(); // Aktualisiere die Position + ballsensor.Aktualisieren(); // Aktualisiere den Ballwinkel + abstand.Aktualisieren(); // Aktualsiere die abstandsdaten } -int Sensor::getAusrichtung() { - return 0; +// Gebe die aktuelle Ausrichtung zurück +int Sensor::GetAusrichtung() { + return position.GetAusrichtung(); } diff --git a/source/AVR_Studio/Soccer/sensor/sensor.h b/source/AVR_Studio/Soccer/sensor/sensor.h index afbb3a0..f3f36ad 100755 --- a/source/AVR_Studio/Soccer/sensor/sensor.h +++ b/source/AVR_Studio/Soccer/sensor/sensor.h @@ -3,7 +3,8 @@ #include "../hal/board.h" #include "ballsensor.h" -#include "../hal/maussensor.h" +#include "position.h" +#include "abstand.h" #include "../global.h" extern Board board; @@ -12,13 +13,15 @@ class Sensor { private: Ballsensor ballsensor; + Position position; + Abstand abstand; public: Sensor(); ~Sensor(); void Aktualisieren(); - int getAusrichtung(); // Gibt die aktuelle Ausrichtung des Roboters zurück + int GetAusrichtung(); // Gibt die aktuelle Ausrichtung des Roboters zurück }; #endif