8 Bit Timer Atmega32

Gast #1233078
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
}
}
Gast #1233166
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;'
Gast #1233199
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.
Gast #1233221
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

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