timer läuft nicht

Gast #1744554
Lesenswert?

Kann mir bitte jemand weiter helfen??? Mein Timer will nicht :-(

jedes mal wenn ich den controller starte, hängt er sich auf


1
ISR (TIMER0_OVF_vect)
2
{
3
    //Interrupt Aktion alle 100ms
4
  //goto RESTART;
5
  //wdt_reset();
6
  goto *((void**) 0);
7
}
8

9
//Funktion zum messen
10
unsigned int read_cm(unsigned char address)
11
{
12
  unsigned char lowbyte, highbyte;
13
  unsigned int distance;
14

15
  // Timer 0 konfigurieren
16
    TCCR0A = (1<<WGM01);         //CTC Modus
17
    TCCR0B |= (1<<CS01)|(1<<CS00);    //Prescaler 1
18
    
19
    OCR0A = 160;            //((16000000/64)/100000) = 160
20
 
21
    TIMSK0 |= (1<<OCIE0A);        //Compare Interrupt erlauben
22
 
23
    sei();                //Global Interrupts aktivieren
24

25
...
#1744558
Lesenswert?

mufus schrieb:
> Kann mir bitte jemand weiter helfen??? Mein Timer will nicht :-(
>
> jedes mal wenn ich den controller starte, hängt er sich auf

Logisch

> ISR (TIMER0_OVF_vect)

OVF    so wie 'Overflow'

>     TIMSK0 |= (1<<OCIE0A);        //Compare Interrupt erlauben

OCIE   so wie Output Compare

Du brauchst schon einen Interrupt Handler, der auch zu den von dir 
freigegenenen Interrupts passt.
Entweder Overflow freigeben und ISR für Overflow
oder Output Compare freigeben und ISR für Output Compare.

Aber einen Interrupt freigeben für den es keinen ISR-Handler gibt, wird 
mit Reset bestraft.
#1744647
Lesenswert?

Oliver schrieb:
> Karl heinz Buchegger schrieb:
>> Du brauchst schon einen Interrupt Handler, der auch zu den von dir
>> freigegenenen Interrupts passt.
>
> In diesem speiziellen Fall gehts auch ohne. Ob der nun über
> bad_interrupt wg. ganz fehlender ISR oder per
1
goto *((void**) 0);
> einen Software-Reset macht, kommt auf das selbe hinaus.

Kopfklatsch

Das hab ich ja noch gar nicht gesehen!
Ich hab mich nur auf die ISR Namen konzentriert und gar nicht 
mitbekommen, was er in der ISR macht.

Was soll das denn sein?
Ein µC der sich timergesteuert selber resettet?

Wer erklärt mir wozu das gut sein soll. Der Watchdog ist doch schon 
lange erfunden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren