Forum: Mikrocontroller und Digitale Elektronik CTC-Rätsel vs. AVR-Tutorial


von Frank (Gast)


Lesenswert?

Liebe Experten,

ich habe (dachte ich) das (Uhren-CTC-)Tutorial präzise nachgeahmt:

ldi  temp, high(60000 - 1) ; T1 INIT (oberer Anschlag bei 60.000 => 1 IR 
alle 10ms)
out  OCR1AH, temp
ldi  temp, low(60000 - 1)  ; T1 INIT (oberer Anschlag bei 60.000)
out  OCR1AL, temp
ldi  temp, (1 << WGM12) | (1 << CS10)  ; T1 CTC Modus an, Vorteiler auf 
1
out  TCCR1B, temp
ldi  temp, 1 << OCIE1A     ; T1 Interrupt bei Compare
out  TIMSK, temp

Mit meinem 6MHz -Quartz an einem ATmega8-16PU nahm ich an, 6MHz/60.000 
gibt 100 Impulse pro Sekunde => alle 10ms einen Wakeup. Das tut er aber 
nicht, er wacht viel seltener auf. Sobald ich den CTC auf 10.000 statt 
auf 60.000 stelle, funktioniert alles, wie es soll (also Wakeup alle 
10ms).

Wo kommt dieser Faktor 6 her?
Was habe ich falsch verstanden?

Danke und Grüße
Frank

von spess53 (Gast)


Lesenswert?

Hi

>Wo kommt dieser Faktor 6 her?

Ich tippe mehr auf 8 -> CKDIV8-Fuse.

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

Zurück, ATMega8 hat diese Fuse nicht. Dann läuft dein ATMega mit 1MHz.

MfG Spess

von Martin S. (led_martin)


Lesenswert?

spess53 (Gast) wird wohl Recht haben, der Controller läuft gar nicht mit 
dem 6MHz Quarz, sondern mit dem internen RC-Oszillator, auf 1MHz (Das 
ist die Werkseinstellung bei einem neuen ATmega8). CKSEL Fuses überhaupt 
geändert?

Mit freundlichen Grüßen - Martin

von Frank (Gast)


Lesenswert?

In der Tat: Die Fusebits waren nicht umgesetzt. Ich bitte für diesen 
Anfängerfehler um Vergebung. Wo ist die Kaffeekasse, in die ich zur 
Strafe einzahlen kann?

Danke und Grüße
Frank

von Route_66 H. (route_66)


Lesenswert?

Frank schrieb:
> Wo ist die Kaffeekasse, in die ich zur
> Strafe einzahlen kann?

Wenn hier jeder Anfänger für fehlerhafte Fuses (CKSEL, JTAG, CKDIV8 usw. 
usw.) in eine Kasse einzahlen würde, könnte man davon bald Griechenland 
retten.
Mach Dir deshalb also keine Vorwürfe.

von c-hater (Gast)


Lesenswert?

Route 66 schrieb:

> Wenn hier jeder Anfänger für fehlerhafte Fuses (CKSEL, JTAG, CKDIV8 usw.
> usw.) in eine Kasse einzahlen würde, könnte man davon bald Griechenland
> retten.

Der Spruch gefällt mir.

> Mach Dir deshalb also keine Vorwürfe.

Doch, das sollte er trotzdem. Es steht doch, verdammt nochmal, alles im 
Datenblatt. Auch einem Anfänger ist es durchaus zuzumuten, das Ding zu 
lesen, bevor er den Controller benutzt, den es beschreibt.

Ja klar, bei geringer Lesegeschwindigkeit und lausigen 
Englischkenntnissen können da schon mal etliche Abende ziemlich 
nervtötender Lektüre zusammenkommen, das ist klar. Aber nur so kann man 
ernsthaft einsteigen, selbst wenn es nur ein Hobby sein soll.

Ein Hobby soll vor allem Spaß machen und das tut es einfach nicht, wenn 
man dauernd wegen mangelnder Grundkenntnisse auf die Schnauze fällt. Da 
ist die Hobbyaufgabe schon sozusagen "vorprogrammiert".

Letztlich ist das genauso wie z.B. beim Modellflugzeugbau. Auch dort 
wird man unweigerlich auf die Schnauze fallen, wenn man nicht wenigstens 
die Grundlagen der Aerodynamik beherrscht und eine ganze Menge 
handwerklicher Fähigkeiten.

Der Unterschied ist nur: Modellbauanfänger kommen nicht auf die Idee zu 
fragen, warum ihr Werk nicht fliegt, solange noch keine Tragflächen dran 
sind, weil sie nicht in der Lage waren, welche anzufertigen. Sie wissen 
dann von alleine, daß da noch was Wesentliches fehlt...

von Mitlesa (Gast)


Lesenswert?

c-hater schrieb:
> Doch, das sollte er trotzdem.

Aber er hat doch schön brav in Maschine geschrieben. Das
müsste dir doch gefallen, oder?

von Route_66 H. (route_66)


Lesenswert?

Mitlesa schrieb:
> Aber er hat doch schön brav in Maschine geschrieben.

Nein. Er hat Assemblerquelltext geschrieben. Was in Maschinencode 
programmieren heißt, wissen die Wenigsten.

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.