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
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
Magnetus schrieb: > Ich kann kein "sei();" entdecken. Shit... mal wieder zu voreilig... das "sei();" steckt in "init();". Muss noch mal genauer hinsehen.
Wie erzeugst du das, was du dann in den µC schreibst? Poste doch mal bitte den kompletten Build-Output.
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
Wieso ist in deinen Projekt-Optionen ein AtMega128 eingetragen?
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.
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
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.