mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik timer läuft nicht


Autor: mufus (Gast)
Datum:

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

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


ISR (TIMER0_OVF_vect)
{
    //Interrupt Aktion alle 100ms
  //goto RESTART;
  //wdt_reset();
  goto *((void**) 0);
}

//Funktion zum messen
unsigned int read_cm(unsigned char address)
{
  unsigned char lowbyte, highbyte;
  unsigned int distance;

  // Timer 0 konfigurieren
    TCCR0A = (1<<WGM01);         //CTC Modus
    TCCR0B |= (1<<CS01)|(1<<CS00);    //Prescaler 1
    
    OCR0A = 160;            //((16000000/64)/100000) = 160
 
    TIMSK0 |= (1<<OCIE0A);        //Compare Interrupt erlauben
 
    sei();                //Global Interrupts aktivieren

...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mufus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe jetzt
ISR (TIMER0_COMPA_vect)...

verwendet, jedoch weiterhin das gleiche problem

ich glaub es ist einfach zu warm ich kann nicht mehr richtig denken :-(

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mufus schrieb:

> ich glaub es ist einfach zu warm ich kann nicht mehr richtig denken :-(

Scheint so.
Dein kompletter Code sieht in meiner Kristallkugel auch schon ganz 
verschwommen aus.

Autor: Tobias Hoffmann (obazda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
goto *((void**) 0);


Springt in den reset...

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
goto *((void**) 0);
 einen Software-Reset macht, kommt auf das selbe hinaus.

Oliver

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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
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

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.