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

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.