Attiny 85 Timer 1 startet nicht

Gast #6602851
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
}
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.