-
-
Neuer Benutzer
Öfters hier
Also das Programm ist oben, aber ich gebe mal meine asuro.h ein:
#ifndef ASURO_H
#define ASURO_H
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <stdlib.h>
#define FALSE 0
#define TRUE 1
#define OFF 0
#define ON 1
#define GREEN 1
#define RED 2
#define YELLOW 3
/* neue Funktionen und Variablen*/
#define LEFT 0
#define RIGHT 1
/* --- Globale Variablen -----------------------------------*/
/*!
* Tastsensor Wert bei Interrupt Betrieb. 0=keine Taste, 1= Taste gedrueckt
*/
int switched;
/*!
* Odometriesensor Werte bei Interrupt Betrieb. encoder[0] links, encoder[1] = rechts. (Wertebereich 0..1023)
*/
int encoder[2];
void Go(int distance, int speed);
void Turn(int degree, int speed);
unsigned long Gettime(void);
void Msleep(int dauer);
void Encoder_Init(void);
void Encoder_Set(int setl,int setr);
void Encoder_Stop(void);
void Encoder_Start(void);
void PrintInt(int wert);
int Batterie(void);
void Init(void);
inline void StatusLED(unsigned char color);
inline void FrontLED(unsigned char status);
void BackLED(unsigned char left, unsigned char right);
inline void MotorDir(unsigned char left_dir, unsigned char right_dir);
inline void MotorSpeed(unsigned char left_speed, unsigned char right_speed);
void SerWrite(unsigned char *data,unsigned char length);
void SerRead(unsigned char *data, unsigned char length, unsigned int timeout);
void LineData(unsigned int *data);
void OdometrieData(unsigned int *data);
unsigned char PollSwitch (void);
void StartSwitch(void);
void StopSwitch(void);
void Sleep(unsigned char time36kHz);
/* ----------- END ------------ */
/* --------------- INTERNAL ------------- */
#define GREEN_LED_ON PORTB |= GREEN_LED /*!< Gruene Status LED an */
#define GREEN_LED_OFF PORTB &= ~GREEN_LED /*!< Gruene Status LED aus */
#define RED_LED_ON PORTD |= RED_LED /*!< Rote Status LED an */
#define RED_LED_OFF PORTD &= ~RED_LED /*!< Rote Status LED aus */
#define FWD (1 << PB5) /*!< Motor vorwaerts */
#define RWD (1 << PB4) /*!< Motor rueckwaerts */
#define BREAK 0x00 /*!< Motor bremsen */
#define FREE (1 << PB4) | (1 << PB5) /*!< Motor freilaufend */
#define IRTX (1 << PB3) /*!< PB3 Port fuer Infrarot Transmitter LED */
#define GREEN_LED (1 << PB0) /*!< PB0 Port fuer Gruene Status LED */
#define RED_LED (1 << PD2) /*!< PD2 Port fuer Rote Status LED */
#define PWM (1 << PB1) | (1 << PB2) /*!< PB1, PB2 Ports fuer Pulsweitenmodulation der Motor Geschwindigkeit */
#define RIGHT_DIR (1 << PB4) | (1 << PB5) /*!< PB4, PB5 Ports fuer Drehrichtung rechter Motor */
#define LEFT_DIR (1 << PD4) | (1 << PD5) /*!< PD4, PD5 Ports fuer Drehrichtung linker Motor */
#define SWITCHES (1 << PD3) /* PD3 Port fuer Tastsensor */
#define SWITCH_ON PORTD |= SWITCHES /* Tastsensor an */
#define SWITCH_OFF PORTD &= ~SWITCHES /* Tastsensor aus */
#define BATTERIE (1 << MUX0) | (1 << MUX2) /*!< ADC5 A/D Wandler Port fuer Batterie Abfrage */
#define SWITCH (1 << MUX2) /*!< ADC4 A/D Wandler Port fuer Tastsensor */
#define IR_LEFT (1 << MUX0) | (1 << MUX1) /*!< ADC3 A/D Wandler Port fuer Linienfolger Fototransistor links */
#define IR_RIGHT (1 << MUX1) /*!< ADC2 A/D Wandler Port fuer Linienfolger Fototransistor rechts */
#define FRONT_LED (1 << PD6) /*!< PD6 Port fuer Front LED */
#define ODOMETRIE_LED (1 << PD7) /*!< PD7 Port fuer Odometrie LED */
#define ODOMETRIE_LED_ON PORTD |= ODOMETRIE_LED /*!< Odometrie LED an */
#define ODOMETRIE_LED_OFF PORTD &= ~ODOMETRIE_LED /*!< Odometrie LED aus */
#define WHEEL_LEFT (1 << MUX0) /*!< ADC1 A/D Wandler Port fuer Odometrie Sensor links*/
#define WHEEL_RIGHT 0 /*!< ADC0 A/D Wandler Port fuer Odometrie Sensor rechts */
#endif /* ASURO_H */
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen