www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR mega8 timer prob.


Autor: markus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
guten tag...

ich bin noch ziemlich neu, was die avr-controller angeht, habe jedoch
schon efahrungen mit andern programmiersprachen wie auch mit 8051µC.
zum programmieren benutze ich avrstudio4 mit dem avr gcc compiler

ich habe folgendes problem, ich möchte, das ein timerinterrupt
ausgelöst wird, bekomm dies aber nicht hin. ich bin jetzt schon fast 2
1/2 stunden am probieren, doch es klappt nicht und ich kann nicht
erkennen wo der fehler liegt.

der compiler gibt ne warnung das die function ISR keinen definierten
rückgabe wert hat, setzt diesen auf int.

der quellcode befindet sich in der anlage ( wurde schnell von einem
laptop abgetippt )

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was ich noch ergänzen möchte, der debugger springt bei einem
timeroverflow an den anfang des programmes sprich an
int main (void)

danke für die hilfe

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vermute, Du hast nicht die aktuellste Version von WINAVR
installiert. Der Compiler erkennt anscheinend ISR nicht als Makro.
Müsste aber eigentlich vorher noch ne andere Fehlermeldung geben.

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich erhalte keine fehler sondern warnungen:

FunkUhr.c:8: warning: return type defaults to 'int'
FunkrUhr.c : In function 'ISR'
FunkUht.c:12 warning control reaches end of non-void function

ich werde trotzdem mal nach einer aktuellen version von winavr
schauen...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es liegt mit Sicherheit daran. Wenn Du grad keinen Zugriff auf die
aktuelle Version von WINAVR hast, probier es mal mit

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

SIGNAL(SIG_OVERFLOW0)
{
    //Code...
}

//.....usw...

Das wäre die alte Version. Damit müsste es dann eigentlich
funktionieren.

Autor: Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>FunkUhr.c:8: warning: return type defaults to 'int'

return 0; am Ende der main behebt diese Warnung.

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke, das funktioniert

ich habe es so auch schon versucht gehabt, jedoch nicht die sigal.h
inkludiert.

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe jetzt winavr reinstalliert und es funktioniert auch mit den ISR
makro

die aktuelle version war installiert. ich denke das derjenige, der das
avrstudio installiert hat, nicht den haken für die umgebungsvariable
gesetzt hat bzw ihn deselektiert hat

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha...

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.