ATmega644 Externer Interrupt Timer

OP (Firma: MAMIMO STudios) #2653680
Lesenswert?

Guten Tag,

ich finde den Fehler einfach nicht. Ich möchte eine Steigende Flanke bei 
einem ATmega644 durch den externen ICP Pin abfangen mit dem Timer1. Es 
muss eine Zeit gemessen werden. Wenn ich das Programm in AVR Studio 6 
simuliere und beim Timer1 das ICF1 Flag per Hand setze wird es beim 
nächsten Schritt einfach wieder zurück gesetzt und die Interruptroutine 
wird nicht angesprungen. Ich habe vorher mal die Overflow routine des 
Timers getestet und sie hat funktionert. Wo ist der fehlende Hacken? 
Optimierung ist ausgeschaltet.
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4
int main (void)
5
{
6
  
7
  TIMSK1= 1<<ICIE1; //Capture Input Enable
8
  TCCR1B=((1<<CS10)|(1<<ICES1));//Positive Flanke auswählen und eine      Clocksource
9

10
  sei();
11
  int a=23;
12
  while(1){
13
    a++; //irgendwas machen und auf ext Interrupt warten
14
  } 
15
}
16

17
ISR(TIMER1_CAPT_vect){
18
int b=20;
19

20
}

Viele Grüße
Gast #2653740
Lesenswert?

Hi

>Also ist das ein Bug und kein Bedienungsfehler?!

Kann ich nicht sagen. Ich habe etwas besseres zu tun als mich mit 
halbgaren α-Versionen herum zu ärgern. Beim 4er-Studio weiß ich was, was 
nicht und wie es geht. Aber du kannst ja einen Bug-Report an Atmel 
schreiben. Dann war deine Ärger nicht umsonst.

MfG Spess

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