- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Probleme mit der ASURO lib v2.6.1

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    06.09.2006
    Beiträge
    22
    Anzeige

    LiFePo4 Akku selber bauen - Video
    also hab jetzt mal alles ersetzt und make und clean neu zugewiesen, jetzt kommt das selbe wie bei köpi am anfang. Aber weiss jetzt net wie er es geschafft hat. Aber hier ist mal die asuro.h
    Code:
    #ifndef ASURO_H
    #define ASURO_H
    
    #include <avr/io.h>
    #include <avr/interrupt.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]; 
    
    // Wheelspeed variables 29.7.2005 stochri
    // removed not referenced 29.09.2005 m.a.r.v.i.n
    //unsigned char Wheelspeed[2];
    
    // motor control functions 29.7.2005 stochri
    // motor control functions 31.7.2005 edited by Andun
    /*! 
     * Faehrt eine bestimmte Strecke mit einer bestimmten Geschwindigkeit.
     * Benutzt die Odometrie Sensoren im Interrupt Betrieb.
     * \param distance Distanz (- rueckwaerts, + = vorwaerts)
     * \param speed Geschwindigkeit (Wertebereich 0...255)
     */
    void Go(int distance, int speed);
    
    /*! 
     * Dreht um einen bestimmten Winkel mit einer bestimmten Geschwindigkeit.
     * Benutzt die Odometrie Sensoren im Interrupt Betrieb.
     * \param degree Winkel (- rechts, + links)
     * \param speed Geschwindigkeit (Wertebereich 0...255)
     */
    void Turn(int degree, int speed);
    
    /*! 
     * gibt die aktuelle Zeit zurueck
     * \return aktuelle Zeit in Millisekunden
     */
    unsigned long Gettime(void);
    
    /*! 
     * Wartefunktion. Delay
     * \param dauer Wartezeit in Millisekunden. \see Sleep
     * 
     * Beispiel: Warte 500ms
     * \verbatim
    	Msleep(500);
       \endverbatim
     */
    /* 
    */
    void Msleep(int dauer);
    
    /*! 
     * Initialisiert und startet die Odometriesensor Messung im Interrupt Betrieb. 
     * \see encoder  
     */
    void Encoder_Init(void);
    
    /*! 
     * Odometriesensoren Werte zuruecksetzen für Interrupt Betrieb. 
     * \param setl Wert für links
     * \param setr Wert für rechts
     * \see encoder  
     */
    void Encoder_Set(int setl,int setr);
    
    /*! 
     * Odometriesensoren Messung Interrupt Betrieb anhalten
     */
    void Encoder_Stop(void);
    
    /*! 
     * Odometriesensoren Messung Interrupt Betrieb starten
     */
    void Encoder_Start(void);
    
    /*! 
     * Ausgabe eines Integer Wertes als String ueber die serielle Schnittstelle.  
     */
    void PrintInt(int wert);
    
    /*! 
     * gibt den Wert der Batteriespannung zurueck
     * \return A/D Wandler Wert (Wertebereich 0..1023)
     */
    int  Batterie(void);
    
    
    /*! Initialisiert die Hardware (Ports, A/D Wandler, Serielle Schnittstelle, PWM) 
     *  Die Init Funktion, muss von jeden Programm beim Start aufgerufen werden */
    void Init(void);
    
    /*! 
     * Setzen der Status LED.\n
     * \param color Farbe (OFF,GREEN,RED,YELLOW) 
     * 
     * Beispiel: setze Status LED GREEN
       \verbatim
    	StatusLED(GREEN); 
       \endverbatim
     */
    inline void StatusLED(unsigned char color);
    
    /*! 
     * Setzen der Front LED\n
     * \param status Zustand (OFF,ON)
     * 
     * Beispiel: Front LED On
       \verbatim
    	FrontLED(ON); 
       \endverbatim
     */
    inline void FrontLED(unsigned char status);
    
    /*! 
     * Setzen der Back LEDs\n 
     * \param left linke Back LED (OFF,ON)
     * \param right rechte Back LED (OFF,ON)
     * 
     *  Beispiel: Rechte LED an, linke LED aus
     *  \verbatim
    	BackLED(OFF,ON); 
       \endverbatim
     */
    void BackLED(unsigned char left, unsigned char right);
    
    /*! 
     * Setze Motor Richtung\n
     * \param left_dir Richtung linker Motor (FWD,RWD,BREAK,FREE)
     * \param right_dir Richtung rechter Motor (FWD,RWD,BREAK,FREE)
     * 
     * Beispiel: setze Richtung fuer rechten Motor auf Rueckwaerts
       \verbatim
    	MotorDir(BREAK,RWD); 
       \endverbatim
     */
    inline void MotorDir(unsigned char left_dir, unsigned char right_dir);
    
    /*! 
     * Setze Motor Geschwindigkeit. 0= Stop, 255=Vollgas\n
     * \param left_speed Geschwindigkeit linker Motor (Wertebereich 0..255)
     * \param right_speed Geschwindigkeit rechter Motor (Wertebereich 0..255)
     * 
     * Beispiel:  setzt Geschwindigkeit fuer linken Motor auf 150
       \verbatim
    	MotorSpeed(150,0); 
       \endverbatim
     */
    inline void MotorSpeed(unsigned char left_speed, unsigned char right_speed);
    
    /*! 
     * Ausgabe von Zeichen ueber die serielle Schnittstelle 
     * \param data Zeiger auf die auszugebenden Daten
     * \param length Anzahl der Zeichen
     */
    void SerWrite(unsigned char *data,unsigned char length);
    /*! 
     * Einlesen von Zeichen ueber die serielle Schnittstelle 
     * \param data Zeiger auf die einzulesenden Daten
     * \param length Anzahl der Zeichen
     * \param timeout 0 = blockierender Mode
     */
    void SerRead(unsigned char *data, unsigned char length, unsigned int timeout);
    
    /*! 
     * Linienfolger Daten auslesen. Photosensoren links und rechts
     * \param data Zeiger auf die zu lesenden Daten data[0] links, data[1] rechts (Wertebereich 0..1023)
     */
    void LineData(unsigned int *data);
    
    /*! 
     * Odometrie Daten auslesen Polling Betrieb. Photosensoren links und rechts
     * \param data Zeiger auf die zu lesenden Daten data[0] links, data[1] rechts (Wertebereich 0..1023)
     */
    void OdometrieData(unsigned int *data);
    
    /*! 
     * Tastsensor Abfrage Polling Betrieb
     * \return Tastenwert bitorientiert, K1 = Bit5, K2 = Bit4, K3 = Bit3, K4 = Bit2, K5 = Bit1, K6 = Bit0
     */
    unsigned char PollSwitch (void);
    
    /*! 
     * Tastsensor Abfrage Interrupt Betrieb starten. 
     * \see switched
     */
    void StartSwitch(void);
    
    /*! 
     * Tastsensor Abfrage Interrupt Betrieb anhalten.
     * \see switched
     */
    void StopSwitch(void);
    
    /*! 
     * Wartefunktion\n
     * \param time36kHz Wartezeit x/36kHz (sec)
     * 
     * Beispiel: 1 Millisekunde warten
       \verbatim
    	Sleep(36); 
       \endverbatim
     * \see Sleep
     */
    /* 
    */
    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 */

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    06.09.2006
    Beiträge
    22
    oh habs jetzt danke

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    27.12.2006
    Ort
    Minneapolis
    Beiträge
    30

    aehnliches Problem

    Ich habe ein aehnliches Problem. Auch nach dem #include asuro.h kriege ich die Fehlermeldung es fehlt asuro.o. Wie kann ich asuro.c compilieren, um ein asuro.o Object file zu generieren.

    Gruesse von einen C- und Asuro-Anfaenger.

  4. #14
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    installiere den compiler, und schreibe dein programm. speichere es als test.c. das programm muss mit
    Code:
    #include "asuro.h"
    beginnen. NUR KLEINBUCHSTABEN!

    dann sollte es laut anleitung funktionieren. öffne mal von der cd die datei test.c im ordner asuro_src\firsttry. da ist alles richtig.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #15
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    01.11.2006
    Beiträge
    433
    möglicherweise geht es, wenn du eine neue version von winavr installierst.
    ...

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests