Hi
Ich bin Anfänger und habe den Bausatz Asuro erfolgreich gelötet, jetzt wollte ich anfangen meinen Asuro zu programmieren.
Leider will das nicht funktionieren, ich habe die Software WinAVR installiert und diese will, selbst test.c nicht compiliert :
Code:
//#include "asuro.h"
int main(void)
{
Init();
while(1);
return 0;
}
die asuro.h sieht folgendermaßen aus:
Code:
/*******************************************************************************
*
* File Name: asuro.h
* Project : ASURO
*
*
* Ver. Date Author Comments
* ------- ---------- -------------- ------------------------------
* 1.00 14.08.2003 Jan Grewe build
* 2.00 14.10.2003 Jan Grewe LEFT_VEL, RIGHT_VEL -> MotorSpeed(unsigned char left_speed, unsigned char right_speed);
* LeftRwd(),LeftFwd(),RightRwd(),RigthFwd() -> MotorDir(unsigned char left_dir, unsigned char right_dir);
* GREEN_ON,GREEN_OFF,RED_ON,RED_OFF -> StatusLED(unsigned char color);
* LED_RED_ON, LED_RED_OFF -> FrontLED(unsigned char color);
* Blink(unsigned char left, unsigned char right) -> BackLED(unsigned char left, unsigned char right);
* Alles in Funktionen gefasst => leichter verständlich ?!?!
* 2.10 17.10.2003 Jan Grewe new Timer funktion void Sleep(unsigned char time36kHz)
*
*
* Copyright (c) 2003 DLR Robotics & Mechatronics
*****************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* any later version. *
***************************************************************************/
#ifndef ASURO_H
#define ASURO_H
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#define FALSE 0
#define TRUE 1
#define OFF 0
#define ON 1
#define GREEN 1
#define RED 2
#define YELLOW 3
/* Init function Processor will be initalized to work correctly */
void Init(void);
/* Set Status LED (OFF,GREEN,RED,YELLOW)*/
/* example code set Status LED GREEN */
/* StatusLED(GREEN); */
inline void StatusLED(unsigned char color);
/* function for front LED */
/* example code front LED On */
/* FrontLED(ON); */
inline void FrontLED(unsigned char status);
/* function for Back LEDs */
/* example code right LED On left LED Off */
/* BackLED(OFF,ON); */
void BackLED(unsigned char left, unsigned char right);
/* Set motor direction (FWD,RWD,BREAK,FREE)*/
/* example code set Direction for right motor to rewind */
/* MotorDir(BREAK,RWD); */
inline void MotorDir(unsigned char left_dir, unsigned char right_dir);
/* range for motor speed 0..255 */
/* example code set speed for left motor to 150 */
/* MotorSpeed(150,0); */
inline void MotorSpeed(unsigned char left_speed, unsigned char right_speed);
/* function for serial communication */
void SerWrite(unsigned char *data,unsigned char length);
/* timeout = 0 => bloking mode !!! */
void SerRead(unsigned char *data, unsigned char length, unsigned int timeout);
/* function to read out line follow phototransistors (left,rigth) */
void LineData(unsigned int *data);
/* function to read out odometrie phototransistors (left,rigth) */
void OdometrieData(unsigned int *data);
/* function to read out switches */
unsigned char PollSwitch (void);
/* for working with Interrupt */
void StartSwitch(void);
void StopSwitch(void);
/* Sleep function using 36kHz counter */
void Sleep(unsigned char timer36kHz);
/* ----------- END ------------ */
/* --------------- INTERNAL ------------- */
#define GREEN_LED_ON PORTB |= GREEN_LED
#define GREEN_LED_OFF PORTB &= ~GREEN_LED
#define RED_LED_ON PORTD |= RED_LED
#define RED_LED_OFF PORTD &= ~RED_LED
#define FWD (1 << PB5) /* (1 << PD5) */
#define RWD (1 << PB4) /* (1 << PD4) */
#define BREAK 0x00
#define FREE (1 << PB4) | (1 << PB5) /* (1 << PD4) | (1 << PD5)*/
#define IRTX (1 << PB3)
#define GREEN_LED (1 << PB0)
#define RED_LED (1 << PD2)
#define PWM (1 << PB1) | (1 << PB2)
#define RIGHT_DIR (1 << PB4) | (1 << PB5)
#define LEFT_DIR (1 << PD4) | (1 << PD5)
#define SWITCHES (1 << PD3)
#define SWITCH_ON PORTD |= SWITCHES
#define SWITCH_OFF PORTD &= ~SWITCHES
#define BATTERIE (1 << MUX0) | (1 << MUX2) //ADC5
#define SWITCH (1 << MUX2) //ADC4
#define IR_LEFT (1 << MUX0) | (1 << MUX1) //ADC3
#define IR_RIGHT (1 << MUX1) //ADC2
#define FRONT_LED (1 << PD6)
#define ODOMETRIE_LED (1 << PD7)
#define ODOMETRIE_LED_ON PORTD |= ODOMETRIE_LED
#define ODOMETRIE_LED_OFF PORTD &= ~ODOMETRIE_LED
#define WHEEL_LEFT (1 << MUX0) //ADC1
#define WHEEL_RIGHT 0 //ADC0
#endif /* ASURO_H */
An diesen Dateien sollte es wirklich nicht liegen denn sie werden so zum dowload angeboten und der Fehler wurde meines Wissens noch nicht protokoliert.
Folgender Fehler erscheint bei jeglichen Versuchen meine Tools make bzw clean auszuführen (auch diese sind standart und wurden von mir nicht verändert):
> "C:\Programme\Asuro\Beispiel-Programme\FirstTry\Test-all.bat"
C:\Programme\Asuro\Beispiel-Programme\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
AllocationBase 0x0, BaseAddress 0x71590000, RegionSize 0x50000, State 0x10000
C:\Programme\WinAVR\utils\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 487
make: *** [asuro.d] Error 1
> Process Exit Code: 2
> Time Taken: 00:02
Ich habe die Software schon neu installiert und die neueste Version von WinAVR installiert und es erscheint aber immernoch dieser Fehler.
Leider habe ich auch keine Anwort zu diesem Thema im Internet gefunden. Mittlerweile habe ich einige Stunden versucht und kein Erfolg gehabt, langsam macht sich Frust breit.
Hat jemand ne Ahnung woran das denn liegen könnte oder hat vielleicht sogar jemand den gleichen Fehler und wie kann man diesen Fehler beheben!?
Vielen dank für eure Hilfe
Simon
Lesezeichen