Attiny 85 Timer 1 startet nicht

Gast #6602851
Lesenswert?

Moin Leute,

bin gerade im AVR-Studio im Simulator am testen.
Könnt ihr mir sagen wieso der nicht in den Interrupt springt?
Hab schon einiges getestet aber nichts hat funktioniert.
Hatte mir da einen Breakpoint gesetzt. Auch nach 100.000 Zyklen ist der 
noch nicht in den Interrupt reingesprungen.
1
#define    F_CPU      8000000L
2
#include  <avr\io.h>
3
#include  <stdlib.h>
4
#include   <avr/interrupt.h>
5

6
volatile   int32_t zahl=0;
7

8
ISR(TIMER1_OVF_vect)
9
{
10
    TCNT1 = 128;
11
    zahl++;
12
}
13

14
void timer1_init(void)
15
{
16
  TCCR1 |= (1<<CS10);        // Prescaler=1
17
  TIMSK |= (1<<TOIE1);      // Timeroverflow Interrupt aktiv
18
  TCNT1 = 128;
19
  sei();
20
}
21

22
int main(void)
23
{
24
  timer1_init();
25

26
  while(1)
27
  {
28
    zahl++;
29
  }
30
}
#6602886
Lesenswert?

Peter schrieb:
> Wenn ich den Simulator anhalte, ist der Cycle Counter hochgezählt, aber
> der TCNT1 steht auf den initialisierten 128.

Ich weiß nicht, wie gut der Simulator den Timer nachbildet, und wo/wann 
du TCNT1 anschaust.
Hast du ein Oszilloskop? Dann könntest du in der Interruptroutine ein 
I/O-Pin toggeln und schauen, ob sich was bewegt. Dann siehst du, was die 
Hardware wirklich macht.
Gast #6602904
Lesenswert?

Moin,
bei dem Tiny musst du TIM1_OVF_vect nutzen. Außerdem solltest du den CTC 
Modus nutzen wenn du nur 128 zählen willst. Das zurücksetzen auf 127 ist 
nicht so schön, da bis zum zurücksetzen auch Zeit vergangen ist und ggf. 
durch andere Interrupts noch ne größere Verzögerung eintritt.

Viele Grüße
#6602907
Lesenswert?

Stefan ⛄ F. schrieb:
> Ich denke, du musst die ISR "TIM1_OVF_vect" nennen.
Sollte beides gehen. Auszug (wenn das noch einigermaßen aktuell ist):
1
/* $Id: iotnx5.h 2269 2011-12-29 08:07:25Z joerg_wunsch $ */
2

3
/* Timer/Counter1 Overflow */
4
#define TIM1_OVF_vect_num    4
5
#define TIM1_OVF_vect      _VECTOR(4)
6
#define TIMER1_OVF_vect_num    4
7
#define TIMER1_OVF_vect      _VECTOR(4)
8
#define SIG_OVERFLOW1      _VECTOR(4)
Gast #6602945
Lesenswert?

Also am lebenden Objekt habe ich es noch nicht getestet. Auch mit 
TIM1_OVF_vect ändert es nichts. Ob der Simulator so funktioniert wie ich 
mir das vorstelle ist natürlich die andere Frage.

Also mein eigentliches Ziel ist ein Taktgeber für einen Schrittmotor mit 
flexibler Frequenz. Am liebsten natürlich über den ganzen möglichen 
Frequenzbereich des MC, damit ich die kombi auch für andere Projekte 
verwenden kann.

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