Forum: Compiler & IDEs Probleme mit Quarz-Frequenz


von Daniel (Gast)


Lesenswert?

Hallo zusammen,
ich habe ein kleines Problem mit den einstellungen der Quarz Frequenz.
Ich habe das Stk-500 Board und möchte einen Mega8 mit einem 4 MHz quarz 
betreiben.
Dazu habe ich einen 4MHz-Quarz an die passende Stelle gesteckt und den 
OSCSEL-Jumper auf die Pins 2-3 gesteckt.
Die Fuse-Bits habe ich auf EXTRCOSC_3MH-8MHZ Staruptime 18CK +4ms 
gestellt.
Wenn ich aber nun eine einfache Led in 1s intervallen blinken lassen 
möchte, blinkt sie schneller als sie sollte. Könnt ihr mir vielleicht 
helfen?
Was mache ich falsch?

Hier noch der c-Code:
1
#define F_CPU 40000000
2
3
#include <avr/io.h>
4
#include <util/delay.h>
5
6
int main()
7
{
8
  unsigned char i;
9
10
  PORTB = 0x00;
11
  DDRB = 0x01;
12
13
  while( 1 ) {
14
    PORTB ^= 0x01;
15
    for( i = 0; i < 50; ++ i )
16
      _delay_ms( 10 );
17
  }
18
}

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Also so wie ich das sehe wartest du 50 mal 10ms, das ergibt bei mir 
500ms und nicht eine Sekunde?

von Rolf Magnus (Gast)


Lesenswert?

500 ms an, 500 ms aus, ergibt zusammen 1 s.

von Daniel (Gast)


Lesenswert?

Richtig und momentan ist die LED 2s an und 2s aus. Läuft also mit 1MHZ, 
also muss ich irgendwas falsch gemacht haben. Wenn ich den Quarz raus 
nehme, bleibt die Led im aktuellen Zustand... Hat jemand einen Tipp für 
mich?

von Thomas (Gast)


Lesenswert?

Vielleicht benutzt der µC den Quarz nicht, weil die Fuse-Bits nicht auf 
externen Quarz eingestellt sind.

von g457 (Gast)


Lesenswert?

> Wenn ich aber nun eine einfache Led in 1s intervallen blinken lassen
> möchte, blinkt sie schneller als sie sollte
[..]
> Richtig und momentan ist die LED 2s an und 2s aus.

Wie jetzt? Zu schnell oder zu langsam?

> #define F_CPU 40000000

40MHz?

von Daniel (Gast)


Lesenswert?

Oh man wie blöd! Eine Null zu viel.
Dank dir, das war der Fehler.

von Daniel (Gast)


Lesenswert?

Ich bemerke gerade das der Quarz immmernoch zu schnell läuft... Er läuft 
genau doppelt so schnell, d.h.  wenn ich 8MHz als F_CPU angebe, passt es 
genau. Liegt das vielleicht an der EXTRCOSC_3MHZ-8MHZ einstellung?

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.