Sekundentimer mit ATMEGA88V

Gast #2028367
Lesenswert?
• ▲
▼
Hallo, bin noch Anfänger,
dachte mir vielleicht kann mir hier jemand schnell weiterhelfen.
Ich versuche über den Timer1 einen Sekunden-Interrupt zu erzeugen.
Im Testszenario will ich an einem B-Pin eine LED b linken lassen.
Das klappt auch, nur blinkt die LED viel zu langsam. Der interrupt wird 
ca alle 8 Sekunden ausgeführt.. Also die Zahl 8 ist ja schon komisch, 
aber dachte ich hätte alles richtig eingestellt.

1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4

5
int main(void)
6
{
7

8
  TCCR1B = (1<<CS12);  // Timer 1 mit 256 prescale starten
9
  TIMSK1 = 0x1;    // Overflow Interrupt setzen
10
  TCNT1H = 0x88;    // für 1 Hz
11
  TCNT1L = 0xee;
12

13
  sei();  // Global Interrupts aktivieren
14

15
  DDRB = 0xff;
16

17
  while(1)
18
  {
19
  }
20
  return 0;
21
}
22

23
ISR (TIMER1_OVF_vect)
24
{
25
  TCNT1H = 0x88;  // für 1 Hz
26
  TCNT1L = 0xee;
27
  PORTB ^=0xff;
28
}
Angehängte Dateien:
Gast #2028378
Lesenswert?
• ▲
▼
Ok, ansonsten ist mein Versuch also korrekt.
Das beruhigt ja schon mal.

Allerdings kann ich nirgends die Einstellugn "1Mhz" finden,
ich finde in den Fuses folgendes:

SUT_CKSEL:
Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 65 ms

Daher hätte ich gedacht, dass der schon mit 8MHz läuft.

Wie kriege ich den denn mit Sicherheit auf 8Mhz ?
Persönliche Seite #2028382
Lesenswert?
• ▲
▼
Wieso benutzt du die gespaltenen Register?
In C brauchst du das nicht!
Und kleine Eigenwerbung: Man kann zawr die Formeln aus dem Datenblatt 
benutzen, Software geht aber auch! Hier gibts den AVRTimerCalculator:
http://apexys-toan.blogspot.com/2011/01/avrtimercalculator.html
Kleiner Tipp:
Es ist ziemlich kompliziert, immer wieder die Timerregister zu setzen.
Mach doch CTC mit dem OCR1A (siehe Datenblatt)!

Mit freundlichen Grüßen,
Valentin Buck

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.