Forum: Mikrocontroller und Digitale Elektronik Problem mit Taktfrequenz vom Atmega


von Sven (Gast)


Lesenswert?

Hallo liebes Forum,

ich habe gerade ein kleines Problem,
ich arbeite zum erstem mal mit einem Atmega328-PU.

Ich möchte ihn mit einem 20MHz Quaroszillator betreiben.
Dazu habe ich die Fuses umgestellt. Da ich den µc immer noch
über den ISP ansprechen kann, vermute ich mal, ich war damit 
erfolgreich...

Das Low Fuse liegt bei 0x7F.


Soweit sogut ich wollte für den anfang einfach mal eine LED Toggeln:
1
#define F_CPU 20000000UL       //Taktfrequenz 20MHz
2
3
#include <avr/io.h>
4
#include <util/delay.h>
5
6
7
int main(void)
8
{
9
  DDRD =0x00;
10
  DDRD |= (1 << PIND2);
11
  PORTD = 0x00;  
12
  
13
    while(1)
14
    {
15
    PORTD ^= ( 1 << PIND2 );  
16
    _delay_ms(500);
17
    }
18
}

nun zu meinem Problem, eigentlich sollte doch nach meinem Verständniss 
die LED nach 0,5s getoggelt werden.
Allerdigs erfolgt der toggel erst nach 5 sekunden.
Was mach ich falsch, oder habe ich einen totalen Denkfehler.
Komm da grad nicht drüber weg.

Vielen Dank schonmal im Vorraus.
LG Sven

von hinz (Gast)


Lesenswert?

Sven schrieb:
> Das Low Fuse liegt bei 0x7F.

Du hast CLKDIV8 eingeschaltet, so läuft er mit 20/8 MHz.

von Sven (Gast)


Lesenswert?

Vielen Dank:)

von Karl M. (Gast)


Lesenswert?

Hallo Sven,

kennst Du als Hilfsmittel schon:

http://www.engbedded.com/fusecalc/

Damit arbeite ich sehr gerne.

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.