TIMER0_OVF_vect startet bei Mega1284P nicht

OP #4720039
Guten Abend,

ich habe ein Problem mit einer einfachen Timer Routine die nicht startet 
:(

Folgender Code:
1
#ifndef F_CPU
2
//#define F_CPU 3686400UL
3
#define F_CPU 8000000UL
4
#endif
5

6
#include <avr/io.h>
7
#include <util/delay.h>
8
#include <util/twi.h>
9
#include <string.h>
10
#include <stdlib.h>
11
#include <stdio.h>
12
#include <stdint.h>
13
#include <avr/interrupt.h>
14
#include <inttypes.h>
15

16
#define PWR_LED      PINB4
17

18

19
ISR( TIMER0_OVF_vect )                      // every 10ms
20
{
21

22
  TCNT0 = (uint8_t)(int16_t)-(F_CPU / 1024 * 10e-3 + 0.5);  // preload for 10ms
23
  
24
  // Zum testen ob sich was tut...
25
  PORTB ^= (1<<PWR_LED);
26
}
27

28
int main(void)
29
{
30
    // Inititalisierung des 10ms Timers
31
    TCCR0A = (1<<CS02)|(1<<CS00);                // divide by 1024
32
    TCNT0 = (uint8_t)(int16_t)-(F_CPU / 1024 * 10e-3 + 0.5);  // preload for 10ms
33
    TIMSK0 |= 1<<TOIE0;
34
      
35
    sei();
36
    while (1) 
37
    {
38
    
39
    }
40
}

... relativ überschaubar, die LED kann ich auch schalten und toggeln, 
also an der Hardware liegt es nicht. Bei 10mS müsste die LED zumindest 
glimmen... mit dem Oszi sieht man aber auch keine Regung.

Mir scheint als wären die globalen Interrupts geblockt, diese habe ich 
aber mit sei() gestartet.

Bitte helft mir :)

Danke!!!
Matthias
OP
Hier jetzt so ;-) Hat tatsächlich noch gefehlt, fiel aber nicht auf weil 
ich die LED ja schalten konnte.

Ändert allerdings nichts ...
1
int main(void)
2
{
3
  // Pin als Ausgang konfigurieren
4
  DDRB |= (1<<PWR_LED);
5
  
6
  
7
    // Inititalisierung des 10ms Timers
8
    TCCR0A = (1<<CS02)|(1<<CS00);                // divide by 1024
9
    TCNT0 = (uint8_t)(int16_t)-(F_CPU / 1024 * 10e-3 + 0.5);  // preload for 10ms
10
    TIMSK0 |= 1<<TOIE0;

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.