mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8 Bit Timer Atmega32


Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich möchte den 8bit timer in ctc modus betreiben,
prescaler 1
leider stimmt was bei meinem code nicht,
könnt ihr mir helfen?
int sec=0;
void inttimer()
{
TIMSK=(1<<OCIE0);
OCR0=250;
TCNT0=0;
TCCR0=(1<<WGM01) | (1 << CS00);
}
ISR(TIMER0_COMPA_vect)
{
sec++;
}
int main()
{
inttimer();
sei();
while(1)
{
 sec an 7 segmentanzeige ausgeben
}
}

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sec muss volatile sein..kA ob noch mehr falsch ist

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke hat aber nichts gebracht

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir wer helfen

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WAS stimmt denn nicht ?

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es wird sec nicht an der segmentanzeige angezeigt
Die funktion zur ansteuerung der segmente hab ich ausgiebig getestet und 
hat keinen fehler

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann es sein, dass du beim Kompilieren eine Warnung bekommst und diese 
ignorierst?

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was gibt dein Compiler denn für Meldungen 'raus?
>int main()
kommt mir ohne return etwas merkwürdig vor.
Auch die leere Klammer dürfte so nicht funktionieren.

Probier's mal mit 'int main (void)'
und am Ende der Funktion mit 'return;'

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich im nur hier vergessen
Die Sekunden werden einfach nicht an der Segment Anzeige Angezeigt
hab schon static sec und volatile probiert wird aber immer 0 ausgegeben.

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal: Welche Warnungen bekommst du beim Kompilieren?

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Folgende warnungen:
TIMER0_COMPA_vect appears to be a misspelled signal handler
bei zeile
ISR(TIMER0_COMPA_vect)

suggest parentheses around assignment used as truth value
bei zeile
if (sec=0)

>if (sec=0) hab ich korrigiert zu if (sec==0)
dann hatte ich keine fehler mehr funktioniert aber noch immer nicht.

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
frank wrote:

> TIMER0_COMPA_vect appears to be a misspelled signal handler
> bei zeile
> ISR(TIMER0_COMPA_vect)

und warum ignorierst du diese Warnung einfach? Da steht doch genau der 
(oder ein) Fehler...

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie kann ich ihn beheben?

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
frank wrote:
> wie kann ich ihn beheben?

Indem du im Datenblatt oder der AVR-Libc-Doku nachschaust, wie der 
Interrupt richtig heißt, und den Namen im deinem Programm entsprechend 
korrigierst.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach's A weg.

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der Timer0 kennt nur einen Compare, siehe iom32.h, richtig wäre :

/* Timer/Counter0 Compare Match */
#define TIMER0_COMP_vect    _VECTOR(10)

der Timer1 kennt dagegen COMPA und COMPB, siehe Datenblatt.

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.