AVR-Stoppuhr zählt nur bis 255

Gast #1495457
Lesenswert?

Hallo!

Habe ein Problem!
Und zwar will ich eine Stoppuhr basteln, die eigentlich schon ganz gut 
funktioniert.
Mein Problem ist, dass die Zählvariable ein integer ist und somit nur 
bis 255 zählen kann.
Ich lass die Stoppuhr in zehntelsekunden laufen - was heißt, dass bei 
25.5 Sekunden Schluss ist.

Wie kann ich nun auf einfachen Wege den counter weiter rauf zählen 
lassen?

Der Timerinterrupt macht folgendes:

ISR(TIMER1_COMPA_vect)
{
  overflowcounter++;
  if(overflowcounter == 10) //alle zehntelsekunde counter erhöhen
  {
        counter++;
    overflowcounter=0;
  }
}


Grüße
Markus
Angehängte Dateien:
Gast #1495459
Lesenswert?

Das Problem ist nicht "Counter". Es ist als "int" definiert uns sollte 
daher 2 byte habe und somit bis 2^16=65536 zöhlen können. Dein Problem 
steckt in "zahl", DAS ist eine 8Bit- variable und kann nur bis 255 
zählen. Versuch eine andere Umrechnung von "Counter" für das Display!
Gast #1495474
Lesenswert?

Hallo!

Ach ich sehe schon, ich hab mich zu sehr auf den Counter versteift und 
dazu noch keine Ahnung gehabt wie groß ein int tatsächlich ist ^^

Ich sollte mir mal die Datentypen zu Gemüte führen...

ich hab jetzt aus "zahl" ein uint16_t gemacht und alles läuft prächtig!

Danke für eure Hilfe!

Grüße
Markus

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