Forum: Compiler & IDEs Timer1 im ATmega8 CTC-Vergleich läuft nicht


von Erik H. (agutanus)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe letzte Woche begonnen mit C einen ATmega8 zu programmieren und 
habe dementsprechend wenig Erfahrungen...

Momentan versuche ich einen Timer zu programmieren, welcher eine Uhr im 
Sekundenabstand hochzählen lässt.

Dazu habe ich folgenden Code geschrieben (siehe Anhang)

Die Bezeichnungen der Bits habe ich aus dem Tutorial "AVR-GCC-Tutorial 
Die Timer und Zähler des AVR"

den dort gegebenen Code kann ich übrigens gar nicht erst compilieren...
-> error: 'TCCR0A' - undeclared (first use in this function)

Meinen Code kann ich kompilieren, allerdings wird der Interrupt bei mir 
nie ausgelöst...

vG,
Erik

von Magnetus (Gast)


Lesenswert?

Erik Her schrieb:
> Meinen Code kann ich kompilieren, allerdings wird der Interrupt bei mir
> nie ausgelöst...
1
//Hauptprogramm
2
int main()
3
{
4
5
  init();                //initialisiert LCD-Display und Timer
6
7
  mytime.hours = 19;          //!testweise! Voreinstellung der internen Zeit
8
  mytime.minutes = 0;
9
  mytime.seconds = 16;
10
  mytime.milliseconds = 0;
11
12
  lcd_printTime();          //erste Ausgabe der Zeit auf dem LCD-Display
13
14
  while(1);              //leere Schleife um auf Interrupts zu warten
15
16
  return 0;
17
}

Ich kann kein "sei();" entdecken.

Gruß,
Magnetus

von Magnetus (Gast)


Lesenswert?

Magnetus schrieb:
> Ich kann kein "sei();" entdecken.

Shit... mal wieder zu voreilig... das "sei();" steckt in "init();".

Muss noch mal genauer hinsehen.

von Stefan E. (sternst)


Lesenswert?

Wie erzeugst du das, was du dann in den µC schreibst? Poste doch mal 
bitte den kompletten Build-Output.

von Erik H. (agutanus)


Angehängte Dateien:

Lesenswert?

wo finde ich denn den "Build-Output"?

Na ich hänge einfach mal den gesamten Projektordner an...

Ich benutze AVR-Studio 4 mit dem GCC-Compiler (nachinstalliert)

Erik

von Karl H. (kbuchegg)


Lesenswert?

Wieso ist in deinen Projekt-Optionen ein AtMega128 eingetragen?

von Hc Z. (mizch)


Lesenswert?

Und - ich habe kein Windows hier - im .aps findet sich
<CURRENT_PART>ATmega32HVB</CURRENT_PART>
aber nirgends ein ATmega8.  Kein Wunder, dass der seine Interrupts nicht 
findet.

von Erik H. (agutanus)


Lesenswert?

Danke - Jetzt läufts!
Habe nun in "Project > Configuration Options" den Richtigen µC 
ausgewählt.

Jetzt muss ich nur noch raus finden, auf welcher Frequenz der interne 
Quarz läuft. Aber ich werde mal die Zeit zählen, die er für ein paar 
Million Takte benötigt - werden wohl 8 MHz sein.

Erik

von Falk B. (falk)


Lesenswert?

@  Erik Her (agutanus)

>Jetzt muss ich nur noch raus finden, auf welcher Frequenz der interne
>Quarz läuft.

Es gibt keinen internen Quarz. Nur interne RC-Oszillatoren.

> Aber ich werde mal die Zeit zählen, die er für ein paar
>Million Takte benötigt - werden wohl 8 MHz sein.

Ein Blick auf die AVR Fuses ist deutlich sinnvoller.

MfG
Falk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.