Hallo ich wollte ein einfaches Programm schreiben, zum testen ob ich den Timer richtig verwende. Mein Prg: #include <avr/io.h> // Ein/Ausgangsbelegung, Definitionen #include <stdint.h> // AVR Integer #include <avr/interrupt.h> // Interrupt Routinen, Definitionen #ifndef F_CPU #define F_CPU 18432000 #endif // Module definieren ISR(TIMER1_COMPA_vect); ISR(__vector_default) /* Falls ein nicht programmierter Interrupt auftritt nichts tun damit kein Reset ausgelöst wird */ { // hier sollte der Code stehen } int main (void) { // Ein-/Ausgänge initialisieren // Datenrichtung DDRD |= (1 << DDD3) // Ausgänge // //PORTD &= ~(1 << PD3); PORTD |= 3; <--------------- hier ist der Fehler // Timer, 16 bit, Compare Match Modus, Vorteiler 1024 TCCR1B |= (1 << WGM12) | (1 << CS10) | (1 << CS12); OCR1A = 16000; // Vergleichsregister (~1 s bei Vorteiler 1024) TIMSK |= (1 << OCIE1A); // enable OutputCompareA Interrupt für Timer1 while(1); return 0; } ISR(TIMER1_COMPA_vect) { PORTD ^= (1 << PD3); // LED toggeln } Wenn ich nun compiliere bekomme ich folgenden Fehler: Build started 6.8.2007 at 14:39:51 avr-gcc.exe -I"C:\..\Programme\WinAVR\avr\include" -mmcu=atmega 8 -Wall -gdwarf-2 -DF_CPU=18432000UL -Os -fsigned-char -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c ../main.c: In function 'main': ../main.c:29: error: called object '8' is not a function make: *** [main.o] Error 1 Build failed with 1 errors and 0 warnings... Das von AVR Studio generierte Makefile befindet sich im Anhang
Hier DDRD |= (1 << DDD3) // Ausgänge fehlt der ';'
fehlt ein semikolon nach "DDRD |= (1 << DDD3)"
Nur mal ein Tipp zu du Compilermeldungen: Selten ist ein Fehler in der angegebenen Zeile. Eher davor. MfG, Thomas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.