Eclipse+Interrupt

Gast #2327609
Lesenswert?

Hallo zusammen,

ich verzweifle gleich.

Ich bin im Moment dabei von AVR-Studio auf Eclipse umzusteigen.
Im Moment löst mir bei folgendem Programm der TIMER1_OVF Vector nicht 
aus, obwohl das Flag im TIFR gesetzt wird. Nun hab ich gelesen das  bei 
früheren Versionen ( heute auch noch?) ein Problem mit dem Linker 
besteht.
Ich verwende das AVR-Plugin Version: 2.3.4.20100807PRD
Wenn ich mit der Maus auf ISR(TIMER1_OVF_vect) zeige zeigt er mir an das 
das durch __vector_8 ersetzt wird. Im Datenblatt des Mega16 ist der 
gewünschte Interrupt jedoch die Nummer 10?

#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>


ISR(TIMER1_OVF_vect) // Timer 1 Overflow Interrupt
{
TCNT1=32000 ;
}


int main (void)
{
  LED_DDR = 0x0F;
  TASTER_DDR =0x00;//Tasterport als Input anwählen
  TASTER_PORT = 0xFF; // PULL-UP an

  TCNT1=32000;
  TCCR1B |=(1<<CS12);
  TIMSK |=(TOIE1);
  sei();
  while(1);

  return 0;
}

Kann jemand dazu eine aussage machen?

mfg Benedikt
#2327794
Lesenswert?

Ich weiß jetzt nicht, was du für einen Modus eingestellt hast - etwas 
auführlichere Kommentierung stünde deinem Programmierstil ganz gut an -, 
aber ich hab das mit TIMER1_COMPA_vect und CTC mode mit Eclipse gemacht 
- allerdings mit ASM.

Mit Eclipse hat das sicherlich nichts zu tun, das ist Sache des gcc, den 
du verwendest und mit einem Linkerfehler hat es sicherlich nichts zu 
tun.
Gast #2327908
Lesenswert?

Benedikt Lippert schrieb:
> Wenn ich mit der Maus auf ISR(TIMER1_OVF_vect) zeige zeigt er mir an das
> das durch __vector_8 ersetzt wird. Im Datenblatt des Mega16 ist der
> gewünschte Interrupt jedoch die Nummer 10?

Dann hast Du das Datenblatt falsch gelesen oder Du hast das falsche 
Datenblatt. Beim Mega16 hat laut Seite 45 der TIMER1_OVF_vect die 
Vectornummer 9. Da das DB mit 1 anfängt zu zählen, bei der avr-libc aber 
mit 0 angefangen wird, ist __vector_8 völlig korrekt.
Gast #2328058
Lesenswert?

Hi, sorry mir ist der Fehler selbst aufgefallen, nachdem ich noch eine 
Stunde rumprobiert habe....

oben fehlt beim TIMSK zwei mal das <<

Und im Datenblatt hab ich mich auch noch verlesen.
Heut war einfach nicht mein Tag:-)



Entschuldigt  die Aufregung!



mfg Benedikt

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren