mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer2 bei 1Hz


Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich wiederhole den gesternrigen Post.
Ich benutze ein ATmega32 /STK600.
Ich möchte anhand der Timer2 (8bits timer)  meine LEDs bei 1HZ
umschlaten.
Aber der nichts. Die LEDs bleiben standig an.
Außerdem, habe ich auch nicht richtig verstanden, was der ich der Werte
für die OCR2 für den vergleich mit den TCNT2 einstellen soll.
Meine Rechnungen 8000000/1024= 7,8KHZ
7800/256= 30 Overflows/s.
Wie komme ich auf 1Hz?
wer kann mich da  weiterhelfen?
In dem ISR soll nur was da ist, in der Funktion stehen.
Ich habe mir überlge mit ASSR  und ORC2 was einzustellen , kapiere da 
nicht so viel.

hier der code:


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


ISR(TIMER2_COMP_vect)
{
  PORTB^=0xFF;//bitweise XOR
} //bei 1hz


 void main  (void)
{
  DDRB  = 0xFF;  //  Set D as output port
  // Clear Timer on compare match / Timer Clock = system clock / 1024
  TCCR2 = (1<<WGM21)|(1<<CS22)|(1<<CS21)|(1<<CS20); //WGM21  control the
counting sequence of the counter
// (CL_2.0)
  TIFR  = OCF2;      // compare match occurs between Timer/counter2 und
data in OCR2
// (CL_2.1)
  TIMSK = 1<<OCIE2;    // Enable Timer 2 Output Compare Match Event
Interrupt
  OCR2  = 0x03;      // Set Output Compare Value to 10 (Compare with the
Timer/Counter to generate Wave forms)

  sei();
while(1);
}


danke


Axel

Autor: Franz Spanlang (spanti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn du die LEDs nur bei 1Hz blinken lassen möchtest (was ich so 
verstanden habe) dann würde ich den TIMER2_OVF_vect bei der ISR 
hineinschreiben und das ganze mit dem compare match weglassen. Damit du 
auf die 1Hz kommst musst du im ISR einen Software-prescaler einfügen 
oder den µC dementsprechend langsamer takten, sonst gibt es da meiner 
Meinung nach keine andere Möglichkeit.

fg

Autor: Gerd G. (elektrikser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau die flashled.c von hier an:
http://homepage.hispeed.ch/peterfleury/avr-softwar...
Passe es an deine Verhältnisse an.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Axel schrieb:

> ich wiederhole den gesternrigen Post.

Axel, betimmt wäre es zielbringender, wenn du genauer erklärst, was du

vorgestern
Beitrag "Timer0 fuer anfänger"

und gestern
Beitrag "Timer2 bei 1Hz betrieben"

am Prinzip nicht verstanden hast, bevor morgen die gleiche Frage noch 
mal kommt und alle Helfer verprellt sind.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Axel schrieb:

> In dem ISR soll nur was da ist, in der Funktion stehen.

warum? Das macht dein Leben schwerer, wie du siehst.

> Ich habe mir überlge mit ASSR  und ORC2 was einzustellen , kapiere da
> nicht so viel.

Wenn du Timer2 asynchron betreiben willst (ASSR), benutzt er nicht die 
vorhandene interne Taktquelle wie der Rest des µC sondern du musst 
eine weitere, externe Taktquelle nur für den Timer2 anschliessen.

Die weitere externe Taktquelle kann (und wird bei obiger Beschränkung) 
ein Quarz mit geringerer Taktfrequenz sein als die Haupttaktquelle für 
den restlichen µC. So kannst du z.B. einen sog. Uhrenquarz (#) 
anschliessen, der im kHz Bereich statt im MHz Bereich arbeitet. Dann 
kann es mit dem passenden Vorteiler und Compare Match Wert gelingen, 
dass die ISR genau alle 0,5 s aufgerufen wird, so dass du ein 1 Hz 
Blinken bekommst.

(#) Beitrag "Warum Uhrenquarz 32,768 kHz?"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.