Code-Work by Marian
This commit is contained in:
parent
ab9cf92c1a
commit
29618453d2
24 changed files with 1266 additions and 1012 deletions
File diff suppressed because one or more lines are too long
|
@ -23,8 +23,9 @@ int main() {
|
||||||
board.motor(1, speed);
|
board.motor(1, speed);
|
||||||
board.motor(2, speed);
|
board.motor(2, speed);
|
||||||
board.motor(3, speed);
|
board.motor(3, speed);
|
||||||
PORTB |= (1 << PB5) | (1 << PB7); // Setze PWM-Ports auf high
|
PORTB |= (1 << PB5) | (1 << PB6); // Setze PWM-Ports auf high
|
||||||
PORTE |= (1 << PE3) | (1 << PE4);
|
PORTE |= (1 << PE3); // | (1 << PE4);
|
||||||
|
PORTA |= (1 << PA4); // | (1 << PA5);
|
||||||
//sleep(10);
|
//sleep(10);
|
||||||
while(true) { sleep(1); }
|
while(true) { sleep(1); }
|
||||||
/*sleep(10);
|
/*sleep(10);
|
||||||
|
|
|
@ -34,7 +34,7 @@ HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0
|
||||||
|
|
||||||
|
|
||||||
## Objects that must be built in order to link
|
## 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
|
## Objects explicitly added by the user
|
||||||
LINKONLYOBJECTS =
|
LINKONLYOBJECTS =
|
||||||
|
@ -73,6 +73,12 @@ ballsensor.o: ../sensor/ballsensor.c
|
||||||
maussensor.o: ../hal/maussensor.c
|
maussensor.o: ../hal/maussensor.c
|
||||||
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
||||||
|
|
||||||
|
position.o: ../sensor/position.c
|
||||||
|
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
||||||
|
|
||||||
|
abstand.o: ../sensor/abstand.c
|
||||||
|
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
||||||
|
|
||||||
##Link
|
##Link
|
||||||
$(TARGET): $(OBJECTS)
|
$(TARGET): $(OBJECTS)
|
||||||
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)
|
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -8,14 +8,14 @@ Soccer.o: ../Soccer.c ../global.h c:/winavr/bin/../avr/include/stdlib.h \
|
||||||
c:/winavr/bin/../avr/include/avr/portpins.h \
|
c:/winavr/bin/../avr/include/avr/portpins.h \
|
||||||
c:/winavr/bin/../avr/include/avr/version.h \
|
c:/winavr/bin/../avr/include/avr/version.h \
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/uart.h \
|
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/uart.h \
|
||||||
../hal/keylcd.h ../hal/i2c.h ../hal/../global.h \
|
../hal/../global.h ../hal/keylcd.h ../hal/i2c.h \
|
||||||
c:/winavr/bin/../avr/include/compat/twi.h \
|
c:/winavr/bin/../avr/include/compat/twi.h \
|
||||||
c:/winavr/bin/../avr/include/util/twi.h \
|
c:/winavr/bin/../avr/include/util/twi.h \
|
||||||
c:/winavr/bin/../avr/include/string.h ../navigation.h \
|
c:/winavr/bin/../avr/include/string.h ../navigation.h \
|
||||||
c:/winavr/bin/../avr/include/math.h ../sensor/sensor.h \
|
c:/winavr/bin/../avr/include/math.h ../sensor/sensor.h \
|
||||||
../sensor/../hal/board.h ../sensor/ballsensor.h \
|
../sensor/../hal/board.h ../sensor/ballsensor.h ../sensor/position.h \
|
||||||
../sensor/../hal/maussensor.h ../sensor/../hal/../global.h \
|
../sensor/../hal/maussensor.h ../sensor/../hal/../global.h \
|
||||||
../sensor/../global.h
|
../sensor/abstand.h ../sensor/../global.h
|
||||||
|
|
||||||
../global.h:
|
../global.h:
|
||||||
|
|
||||||
|
@ -43,12 +43,12 @@ c:/winavr/bin/../avr/include/avr/interrupt.h:
|
||||||
|
|
||||||
../hal/uart.h:
|
../hal/uart.h:
|
||||||
|
|
||||||
|
../hal/../global.h:
|
||||||
|
|
||||||
../hal/keylcd.h:
|
../hal/keylcd.h:
|
||||||
|
|
||||||
../hal/i2c.h:
|
../hal/i2c.h:
|
||||||
|
|
||||||
../hal/../global.h:
|
|
||||||
|
|
||||||
c:/winavr/bin/../avr/include/compat/twi.h:
|
c:/winavr/bin/../avr/include/compat/twi.h:
|
||||||
|
|
||||||
c:/winavr/bin/../avr/include/util/twi.h:
|
c:/winavr/bin/../avr/include/util/twi.h:
|
||||||
|
@ -65,8 +65,12 @@ c:/winavr/bin/../avr/include/math.h:
|
||||||
|
|
||||||
../sensor/ballsensor.h:
|
../sensor/ballsensor.h:
|
||||||
|
|
||||||
|
../sensor/position.h:
|
||||||
|
|
||||||
../sensor/../hal/maussensor.h:
|
../sensor/../hal/maussensor.h:
|
||||||
|
|
||||||
../sensor/../hal/../global.h:
|
../sensor/../hal/../global.h:
|
||||||
|
|
||||||
|
../sensor/abstand.h:
|
||||||
|
|
||||||
../sensor/../global.h:
|
../sensor/../global.h:
|
||||||
|
|
|
@ -9,7 +9,8 @@ ballsensor.o: ../sensor/ballsensor.c ../sensor/ballsensor.h \
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h \
|
c:/winavr/bin/../avr/include/avr/interrupt.h \
|
||||||
c:/winavr/bin/../avr/include/stdlib.h \
|
c:/winavr/bin/../avr/include/stdlib.h \
|
||||||
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h \
|
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h \
|
||||||
../sensor/../hal/uart.h
|
../sensor/../hal/uart.h ../sensor/../hal/../global.h \
|
||||||
|
../sensor/../hal/../hal/board.h
|
||||||
|
|
||||||
../sensor/ballsensor.h:
|
../sensor/ballsensor.h:
|
||||||
|
|
||||||
|
@ -36,3 +37,7 @@ c:/winavr/bin/../avr/include/stdlib.h:
|
||||||
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h:
|
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h:
|
||||||
|
|
||||||
../sensor/../hal/uart.h:
|
../sensor/../hal/uart.h:
|
||||||
|
|
||||||
|
../sensor/../hal/../global.h:
|
||||||
|
|
||||||
|
../sensor/../hal/../hal/board.h:
|
||||||
|
|
|
@ -8,7 +8,8 @@ board.o: ../hal/board.c ../hal/board.h \
|
||||||
c:/winavr/bin/../avr/include/avr/version.h \
|
c:/winavr/bin/../avr/include/avr/version.h \
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h \
|
c:/winavr/bin/../avr/include/avr/interrupt.h \
|
||||||
c:/winavr/bin/../avr/include/stdlib.h \
|
c:/winavr/bin/../avr/include/stdlib.h \
|
||||||
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h ../hal/uart.h
|
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h ../hal/uart.h \
|
||||||
|
../hal/../global.h ../hal/../hal/board.h
|
||||||
|
|
||||||
../hal/board.h:
|
../hal/board.h:
|
||||||
|
|
||||||
|
@ -33,3 +34,7 @@ c:/winavr/bin/../avr/include/stdlib.h:
|
||||||
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h:
|
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h:
|
||||||
|
|
||||||
../hal/uart.h:
|
../hal/uart.h:
|
||||||
|
|
||||||
|
../hal/../global.h:
|
||||||
|
|
||||||
|
../hal/../hal/board.h:
|
||||||
|
|
|
@ -7,7 +7,8 @@ global.o: ../global.c ../global.h c:/winavr/bin/../avr/include/stdlib.h \
|
||||||
c:/winavr/bin/../avr/include/avr/iom128.h \
|
c:/winavr/bin/../avr/include/avr/iom128.h \
|
||||||
c:/winavr/bin/../avr/include/avr/portpins.h \
|
c:/winavr/bin/../avr/include/avr/portpins.h \
|
||||||
c:/winavr/bin/../avr/include/avr/version.h \
|
c:/winavr/bin/../avr/include/avr/version.h \
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/uart.h
|
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/uart.h \
|
||||||
|
../hal/../global.h
|
||||||
|
|
||||||
../global.h:
|
../global.h:
|
||||||
|
|
||||||
|
@ -34,3 +35,5 @@ c:/winavr/bin/../avr/include/avr/version.h:
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h:
|
c:/winavr/bin/../avr/include/avr/interrupt.h:
|
||||||
|
|
||||||
../hal/uart.h:
|
../hal/uart.h:
|
||||||
|
|
||||||
|
../hal/../global.h:
|
||||||
|
|
|
@ -9,7 +9,7 @@ i2c.o: ../hal/i2c.c ../hal/i2c.h ../hal/../global.h \
|
||||||
c:/winavr/bin/../avr/include/avr/portpins.h \
|
c:/winavr/bin/../avr/include/avr/portpins.h \
|
||||||
c:/winavr/bin/../avr/include/avr/version.h \
|
c:/winavr/bin/../avr/include/avr/version.h \
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/../hal/uart.h \
|
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/../hal/uart.h \
|
||||||
c:/winavr/bin/../avr/include/compat/twi.h \
|
../hal/../hal/../global.h c:/winavr/bin/../avr/include/compat/twi.h \
|
||||||
c:/winavr/bin/../avr/include/util/twi.h
|
c:/winavr/bin/../avr/include/util/twi.h
|
||||||
|
|
||||||
../hal/i2c.h:
|
../hal/i2c.h:
|
||||||
|
@ -40,6 +40,8 @@ c:/winavr/bin/../avr/include/avr/interrupt.h:
|
||||||
|
|
||||||
../hal/../hal/uart.h:
|
../hal/../hal/uart.h:
|
||||||
|
|
||||||
|
../hal/../hal/../global.h:
|
||||||
|
|
||||||
c:/winavr/bin/../avr/include/compat/twi.h:
|
c:/winavr/bin/../avr/include/compat/twi.h:
|
||||||
|
|
||||||
c:/winavr/bin/../avr/include/util/twi.h:
|
c:/winavr/bin/../avr/include/util/twi.h:
|
||||||
|
|
|
@ -9,7 +9,7 @@ keylcd.o: ../hal/keylcd.c ../hal/keylcd.h ../hal/i2c.h ../hal/../global.h \
|
||||||
c:/winavr/bin/../avr/include/avr/portpins.h \
|
c:/winavr/bin/../avr/include/avr/portpins.h \
|
||||||
c:/winavr/bin/../avr/include/avr/version.h \
|
c:/winavr/bin/../avr/include/avr/version.h \
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/../hal/uart.h \
|
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/../hal/uart.h \
|
||||||
c:/winavr/bin/../avr/include/compat/twi.h \
|
../hal/../hal/../global.h c:/winavr/bin/../avr/include/compat/twi.h \
|
||||||
c:/winavr/bin/../avr/include/util/twi.h \
|
c:/winavr/bin/../avr/include/util/twi.h \
|
||||||
c:/winavr/bin/../avr/include/string.h
|
c:/winavr/bin/../avr/include/string.h
|
||||||
|
|
||||||
|
@ -43,6 +43,8 @@ c:/winavr/bin/../avr/include/avr/interrupt.h:
|
||||||
|
|
||||||
../hal/../hal/uart.h:
|
../hal/../hal/uart.h:
|
||||||
|
|
||||||
|
../hal/../hal/../global.h:
|
||||||
|
|
||||||
c:/winavr/bin/../avr/include/compat/twi.h:
|
c:/winavr/bin/../avr/include/compat/twi.h:
|
||||||
|
|
||||||
c:/winavr/bin/../avr/include/util/twi.h:
|
c:/winavr/bin/../avr/include/util/twi.h:
|
||||||
|
|
|
@ -8,7 +8,8 @@ maussensor.o: ../hal/maussensor.c ../hal/maussensor.h ../hal/../global.h \
|
||||||
c:/winavr/bin/../avr/include/avr/iom128.h \
|
c:/winavr/bin/../avr/include/avr/iom128.h \
|
||||||
c:/winavr/bin/../avr/include/avr/portpins.h \
|
c:/winavr/bin/../avr/include/avr/portpins.h \
|
||||||
c:/winavr/bin/../avr/include/avr/version.h \
|
c:/winavr/bin/../avr/include/avr/version.h \
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/../hal/uart.h
|
c:/winavr/bin/../avr/include/avr/interrupt.h ../hal/../hal/uart.h \
|
||||||
|
../hal/../hal/../global.h
|
||||||
|
|
||||||
../hal/maussensor.h:
|
../hal/maussensor.h:
|
||||||
|
|
||||||
|
@ -37,3 +38,5 @@ c:/winavr/bin/../avr/include/avr/version.h:
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h:
|
c:/winavr/bin/../avr/include/avr/interrupt.h:
|
||||||
|
|
||||||
../hal/../hal/uart.h:
|
../hal/../hal/uart.h:
|
||||||
|
|
||||||
|
../hal/../hal/../global.h:
|
||||||
|
|
|
@ -10,9 +10,10 @@ navigation.o: ../navigation.c ../navigation.h \
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h \
|
c:/winavr/bin/../avr/include/avr/interrupt.h \
|
||||||
c:/winavr/bin/../avr/include/stdlib.h \
|
c:/winavr/bin/../avr/include/stdlib.h \
|
||||||
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h ../hal/uart.h \
|
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h ../hal/uart.h \
|
||||||
../sensor/sensor.h ../sensor/../hal/board.h ../sensor/ballsensor.h \
|
../hal/../global.h ../hal/../hal/board.h ../sensor/sensor.h \
|
||||||
|
../sensor/../hal/board.h ../sensor/ballsensor.h ../sensor/position.h \
|
||||||
../sensor/../hal/maussensor.h ../sensor/../hal/../global.h \
|
../sensor/../hal/maussensor.h ../sensor/../hal/../global.h \
|
||||||
../sensor/../hal/../hal/board.h ../sensor/../global.h
|
../sensor/abstand.h ../sensor/../global.h
|
||||||
|
|
||||||
../navigation.h:
|
../navigation.h:
|
||||||
|
|
||||||
|
@ -42,16 +43,22 @@ c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h:
|
||||||
|
|
||||||
../hal/uart.h:
|
../hal/uart.h:
|
||||||
|
|
||||||
|
../hal/../global.h:
|
||||||
|
|
||||||
|
../hal/../hal/board.h:
|
||||||
|
|
||||||
../sensor/sensor.h:
|
../sensor/sensor.h:
|
||||||
|
|
||||||
../sensor/../hal/board.h:
|
../sensor/../hal/board.h:
|
||||||
|
|
||||||
../sensor/ballsensor.h:
|
../sensor/ballsensor.h:
|
||||||
|
|
||||||
|
../sensor/position.h:
|
||||||
|
|
||||||
../sensor/../hal/maussensor.h:
|
../sensor/../hal/maussensor.h:
|
||||||
|
|
||||||
../sensor/../hal/../global.h:
|
../sensor/../hal/../global.h:
|
||||||
|
|
||||||
../sensor/../hal/../hal/board.h:
|
../sensor/abstand.h:
|
||||||
|
|
||||||
../sensor/../global.h:
|
../sensor/../global.h:
|
||||||
|
|
|
@ -9,9 +9,11 @@ sensor.o: ../sensor/sensor.c ../sensor/sensor.h ../sensor/../hal/board.h \
|
||||||
c:/winavr/bin/../avr/include/avr/interrupt.h \
|
c:/winavr/bin/../avr/include/avr/interrupt.h \
|
||||||
c:/winavr/bin/../avr/include/stdlib.h \
|
c:/winavr/bin/../avr/include/stdlib.h \
|
||||||
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h \
|
c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h \
|
||||||
../sensor/../hal/uart.h ../sensor/ballsensor.h \
|
../sensor/../hal/uart.h ../sensor/../hal/../global.h \
|
||||||
../sensor/../hal/maussensor.h ../sensor/../hal/../global.h \
|
../sensor/../hal/../hal/board.h ../sensor/ballsensor.h \
|
||||||
../sensor/../hal/../hal/board.h ../sensor/../global.h
|
../sensor/position.h ../sensor/../hal/maussensor.h \
|
||||||
|
c:/winavr/bin/../avr/include/math.h ../sensor/abstand.h \
|
||||||
|
../sensor/../global.h
|
||||||
|
|
||||||
../sensor/sensor.h:
|
../sensor/sensor.h:
|
||||||
|
|
||||||
|
@ -39,12 +41,18 @@ c:\winavr\bin\../lib/gcc/avr/4.1.1/include/stddef.h:
|
||||||
|
|
||||||
../sensor/../hal/uart.h:
|
../sensor/../hal/uart.h:
|
||||||
|
|
||||||
../sensor/ballsensor.h:
|
|
||||||
|
|
||||||
../sensor/../hal/maussensor.h:
|
|
||||||
|
|
||||||
../sensor/../hal/../global.h:
|
../sensor/../hal/../global.h:
|
||||||
|
|
||||||
../sensor/../hal/../hal/board.h:
|
../sensor/../hal/../hal/board.h:
|
||||||
|
|
||||||
|
../sensor/ballsensor.h:
|
||||||
|
|
||||||
|
../sensor/position.h:
|
||||||
|
|
||||||
|
../sensor/../hal/maussensor.h:
|
||||||
|
|
||||||
|
c:/winavr/bin/../avr/include/math.h:
|
||||||
|
|
||||||
|
../sensor/abstand.h:
|
||||||
|
|
||||||
../sensor/../global.h:
|
../sensor/../global.h:
|
||||||
|
|
|
@ -22,6 +22,17 @@ inline void msleep(int msec)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline void usleep(int usec)
|
||||||
|
{
|
||||||
|
usec *= 100;
|
||||||
|
for (int s=0; s<usec; s++) {
|
||||||
|
for (long int i=0; i<1405; i++) {
|
||||||
|
asm volatile("nop");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
void *operator new(size_t sz);
|
void *operator new(size_t sz);
|
||||||
void operator delete(void *p);
|
void operator delete(void *p);
|
||||||
|
|
||||||
|
|
|
@ -92,6 +92,29 @@ int Board::GetADC(uint8_t channel) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gibt den Wert vom Abstandsensor zurück
|
||||||
|
int Board::GetAbstand(int i) {
|
||||||
|
int result = -1;
|
||||||
|
if((i < 0) || (i > 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) {
|
void Board::beep(int freq) {
|
||||||
beepFreq = freq;
|
beepFreq = freq;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "uart.h"
|
#include "uart.h"
|
||||||
|
#include "../global.h"
|
||||||
|
|
||||||
//#define abs(a) ((a < 0)? -a : a)
|
//#define abs(a) ((a < 0)? -a : a)
|
||||||
|
|
||||||
|
@ -31,6 +32,11 @@
|
||||||
#define DRIBBLER_A (1 << 2)
|
#define DRIBBLER_A (1 << 2)
|
||||||
#define DRIBBLER_B (1 << 3)
|
#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
|
#define UART_BAUD_RATE 9600
|
||||||
|
|
||||||
class Board
|
class Board
|
||||||
|
@ -41,6 +47,8 @@ public:
|
||||||
~Board();
|
~Board();
|
||||||
|
|
||||||
int GetADC(uint8_t channel);
|
int GetADC(uint8_t channel);
|
||||||
|
int GetAbstand(int i);
|
||||||
|
|
||||||
void beep(int freq);
|
void beep(int freq);
|
||||||
void ledOn();
|
void ledOn();
|
||||||
void ledOff();
|
void ledOff();
|
||||||
|
|
|
@ -1,6 +1,15 @@
|
||||||
#include "maussensor.h"
|
#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
|
// Setze die Pins entsprechend dem übergebenen Index
|
||||||
if(index == MAUSSENSOR0) {
|
if(index == MAUSSENSOR0) {
|
||||||
sda_pin = MAUS0_SDA;
|
sda_pin = MAUS0_SDA;
|
||||||
|
@ -15,9 +24,6 @@ Maussensor::Maussensor(int index) {
|
||||||
maus_sens_init();
|
maus_sens_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
Maussensor::~Maussensor() {
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gibt die X-Koordinate Zurück
|
// Gibt die X-Koordinate Zurück
|
||||||
uint8 Maussensor::GetX() {
|
uint8 Maussensor::GetX() {
|
||||||
return maus_sens_read(MOUSE_DELTA_X_REG);
|
return maus_sens_read(MOUSE_DELTA_X_REG);
|
||||||
|
|
|
@ -111,9 +111,11 @@ void maus_image_prepare(void);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Maussensor(int index);
|
Maussensor();
|
||||||
~Maussensor();
|
~Maussensor();
|
||||||
|
|
||||||
|
void init(int index);
|
||||||
|
|
||||||
uint8 GetX();
|
uint8 GetX();
|
||||||
uint8 GetY();
|
uint8 GetY();
|
||||||
uint8 GetSqual();
|
uint8 GetSqual();
|
||||||
|
|
|
@ -2,10 +2,11 @@
|
||||||
|
|
||||||
// Initialisiert die Klasse
|
// Initialisiert die Klasse
|
||||||
Navigation::Navigation() {
|
Navigation::Navigation() {
|
||||||
|
// Am Anfang stehen wir an der Stelle
|
||||||
richtung = 0;
|
richtung = 0;
|
||||||
ausrichtung = 0;
|
ausrichtung = 0;
|
||||||
geschwindigkeit = 0;
|
geschwindigkeit = 0;
|
||||||
Aktualisieren();
|
Aktualisieren(); // und änderungen anwenden
|
||||||
}
|
}
|
||||||
Navigation::~Navigation() {
|
Navigation::~Navigation() {
|
||||||
}
|
}
|
||||||
|
@ -27,11 +28,11 @@ void Navigation::SetzeGeschwindigkeit(int nGeschwindigkeit) {
|
||||||
// Aktualieren ohne Parameter
|
// Aktualieren ohne Parameter
|
||||||
void Navigation::Aktualisieren() {
|
void Navigation::Aktualisieren() {
|
||||||
// Richtung in x und y-Kompontente zerlegen
|
// Richtung in x und y-Kompontente zerlegen
|
||||||
int y = (int)cos(richtung); // richtung ist winkel
|
float y = cos(richtung); // richtung ist winkel
|
||||||
int x = (int)sin(richtung);
|
float x = sin(richtung);
|
||||||
|
|
||||||
// Abweichung der Ausrichtung ermitteln(als winkel)
|
// Abweichung der Ausrichtung ermitteln(als winkel)
|
||||||
int w = sensor.getAusrichtung() - ausrichtung;
|
int w = sensor.GetAusrichtung() - ausrichtung;
|
||||||
|
|
||||||
// Stärke der einzelnen Motoren berechnen
|
// Stärke der einzelnen Motoren berechnen
|
||||||
float v0 = x;
|
float v0 = x;
|
||||||
|
|
|
@ -10,12 +10,19 @@ Ballsensor::Ballsensor() {
|
||||||
winkel[5] = 260;
|
winkel[5] = 260;
|
||||||
winkel[6] = 300;
|
winkel[6] = 300;
|
||||||
winkel[7] = 330;
|
winkel[7] = 330;
|
||||||
|
|
||||||
|
// Der Winkel ist erstmal 0
|
||||||
|
ballwinkel = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ballsensor::~Ballsensor() {
|
Ballsensor::~Ballsensor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
int Ballsensor::getBallwinkel() {
|
int Ballsensor::GetBallwinkel() {
|
||||||
|
return ballwinkel;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ballsensor::Aktualisieren() {
|
||||||
// Erstelle ein Array für die Sensorwerte
|
// Erstelle ein Array für die Sensorwerte
|
||||||
int sensor[NUM_BALLSENSOR];
|
int sensor[NUM_BALLSENSOR];
|
||||||
int result = 0; // und einer Variable fürs Ergebnis
|
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
|
if(sensor[i] < current) result = i; // Ergebnis ist erstmal index
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gebe den Winkel zum index result zurück
|
// Setze den Winkel zum index result
|
||||||
return winkel[result];
|
ballwinkel = winkel[result];
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,11 +12,13 @@ class Ballsensor
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
int winkel[NUM_BALLSENSOR];
|
int winkel[NUM_BALLSENSOR];
|
||||||
|
int ballwinkel;
|
||||||
public:
|
public:
|
||||||
Ballsensor();
|
Ballsensor();
|
||||||
~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
|
#endif
|
||||||
|
|
|
@ -6,10 +6,14 @@ Sensor::Sensor() :ballsensor() {
|
||||||
Sensor::~Sensor() {
|
Sensor::~Sensor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Aktualisiert die ganzen Sachen ;)
|
||||||
void Sensor::Aktualisieren() {
|
void Sensor::Aktualisieren() {
|
||||||
|
position.Aktualisieren(); // Aktualisiere die Position
|
||||||
|
ballsensor.Aktualisieren(); // Aktualisiere den Ballwinkel
|
||||||
|
abstand.Aktualisieren(); // Aktualsiere die abstandsdaten
|
||||||
}
|
}
|
||||||
|
|
||||||
int Sensor::getAusrichtung() {
|
// Gebe die aktuelle Ausrichtung zurück
|
||||||
return 0;
|
int Sensor::GetAusrichtung() {
|
||||||
|
return position.GetAusrichtung();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
|
|
||||||
#include "../hal/board.h"
|
#include "../hal/board.h"
|
||||||
#include "ballsensor.h"
|
#include "ballsensor.h"
|
||||||
#include "../hal/maussensor.h"
|
#include "position.h"
|
||||||
|
#include "abstand.h"
|
||||||
#include "../global.h"
|
#include "../global.h"
|
||||||
|
|
||||||
extern Board board;
|
extern Board board;
|
||||||
|
@ -12,13 +13,15 @@ class Sensor
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
Ballsensor ballsensor;
|
Ballsensor ballsensor;
|
||||||
|
Position position;
|
||||||
|
Abstand abstand;
|
||||||
public:
|
public:
|
||||||
Sensor();
|
Sensor();
|
||||||
~Sensor();
|
~Sensor();
|
||||||
|
|
||||||
void Aktualisieren();
|
void Aktualisieren();
|
||||||
|
|
||||||
int getAusrichtung(); // Gibt die aktuelle Ausrichtung des Roboters zurück
|
int GetAusrichtung(); // Gibt die aktuelle Ausrichtung des Roboters zurück
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Reference in a new issue