Problem mit Timer1 Atmega32

Gast #3983873
Lesenswert?
• ▲
▼
Hallo,

ich Arbeite in C mit einem Atmega32 mit Atmel Studio6 und will einen 
einstellbaren Taktgenerator bauen.
Diesen tue ich über einen Drehimpulsgeber steuern.

Jetzt mein Problem:
Es funktioniert alles einwandfrei, nur jetzt möchte ich gerne die Werte 
des Drehimpulsgebers benutzen um einen Pin eine bestimmte Zeit auf High 
und Low zu schalten.
1
ISR( TIMER1_COMPA_vect)
2
{
3
  SecTakt++;
4
  if(SecTakt >= Frequenz)
5
  {
6
    SecTakt = 0;
7
  }
8
  if(Impuls >= SecTakt)
9
  {
10
    PORTB = PORTB|(1<<LED);
11
  }
12
  else
13
  {
14
    PORTB = PORTB &~(1<<LED);
15
  }
Wenn ich hier die Variabeln Frequenz und Impuls mit eine zahl beschreib 
wird dies auch dementsprechen ausgegeben und SecTakt geht bei  erreichen 
des Frequenzwerts wieder auf Null und beginnt von vorne zu zählen.
Aber wenn Frequenz durch den eingestellten Wert des Drehimpulsgebers 
gewählt wird dann zählt SecTakt durchgehend hoch.

Ist irgendwie ein bisschen blöd zu beschreiben das Problem.
Hoffe aber ihr versteht es und könnt mir eventuell helfen.
schon mal Danke ;)
#3983923
Lesenswert?
• ▲
▼
Sven schrieb:

> Aber wenn Frequenz durch den eingestellten Wert des Drehimpulsgebers
> gewählt wird dann zählt SecTakt durchgehend hoch.

Die ISR weiss nichts von deinem Drehimpulsgeber.
Das einzige was die interessiert, dass ist der Wert, der in Frequenz 
steht.

Wenn es also da zu Ungereimtheiten kommt, dann musst du dir mal den Wert 
ansehen, der in Frequenz drinnen steht, bzw. wie sich der verändert.

PS: Die Variablen 'Frequenz' bzw. 'Impuls' sind volatile?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.