Hallo zusammen,
ich hoffe Ihr könnt mir weiterhelfen, ich komme nicht mehr wirklich weiter.
Ich wollte ein wenig mit den Timern experiementieren und darüber einen Interupt auslösen lassen.
Hier mal mein Beispielcode:
Code:
#define F_CPU 3686400 // Taktferquenz des myAVR-Boards
#include <avr/io.h> // AVR Register und Konstantendefinitionen
#include <avr/interrupt.h>
#include <inttypes.h>
#include <stdlib.h>
//----------------------------------------------------------------------
main () // Hauptprogramm, startet bei Power ON und Reset
{
TCCR0 |= (1<<CS00)|(1<<CS02);
sei(); // Interupts aktivieren (Global Interupt Enable)
DDRB = (1<<PB0); // PB0 an PORTB als Ausgang setzen
do { // Schleifenanfang Mainloop
ISR (TIMER0_OVF_vect)
{
PORTB ^= (1 << PB0); // Toggle PB0 z.B. angeschlossene LED
}
PORTB ^= (0 << PB0);
} while (true); // Schleifenende Mainloop
}
beim Versuch das ganze zu brennen erhielt ich dann beim myAVR Workpad folgende Fehlermeldung:
compilieren ... timer.cc In function `int main()':
timer.cc:26 26: error: expected unqualified-id before string constant
timer.cc:27 27: error: a function-definition is not allowed here before '{' token
Habe dann irgendwo gelesen, dass es ein bug im myAVR Workpad sein könnte und man eine spezielle Beta benötigt, oder auf winavr umsteigen soll, daher versuche ich derzeit auf winavr umzusatteln. Im Idealfall würde ich es gerne zusammen mit AVR Studio 4 nutzen.
Ich habe also winavr installiert, danach avrstudio und mein Programm geladen. Folgendes erhalte ich beim Build:
Code:
avr-gcc.exe -mmcu=atmega8 -Wall -gdwarf-2 -O0 -MD -MP -MT timer.o -MF dep/timer.o.d -c ../timer.c
../timer.c:30: warning: return type defaults to 'int'
../timer.c: In function 'main':
../timer.c:36: error: static declaration of '__vector_9' follows non-static declaration
../timer.c:35: error: previous declaration of '__vector_9' was here
../timer.c:40: error: 'true' undeclared (first use in this function)
../timer.c:40: error: (Each undeclared identifier is reported only once
../timer.c:40: error: for each function it appears in.)
../timer.c:41: warning: control reaches end of non-void function
make: *** [timer.o] Error 1
Build failed with 5 errors and 2 warnings...
Wenn ich nur mit winavr arbeite, verstehe ich nicht so ganz was ich in den makefiles einstellen muss... Kann sich jemand von euch den Fehler erklären? Danke schonmal
EDIT:
Habe grade offenbar eine Makefile für winavr hinbekommen, bin nicht sicher wo das Problem lag, jedenfalls klappte es nachdem ich ein neues Projekt und eine neue Makefile genommen habe. Nun stehe ich aber mit winavr vor der gleichen Problematik wie beim AVR studio. Irgendwie gefallen Ihm meine libs wohl nicht ?
Grüße
Dennis
Lesezeichen