Michael Holzt
2005-08-05 16:03:05 UTC
Ich habe ein seltsames Problem: Ich habe eine Schaltung mit einem ATmega 8
entwickelt. Da Platz eingespart werden muß, soll die Schaltung mit dem
internen RC-Oszillator bei 8 MHz laufen. Auf einem STK500 Board läuft das
alles auch einwandfrei.
Nun habe ich eine kleine Platine entwickelt, auf der ein ATmega8 im TQFP
Gehäuse sitzt. Wenn ich diese eigentlich korrekt programmiere, also die
Fuses entsprechend einstelle und auch das 8 MHz Kalibrationsbyte auslese
und durch mein Programm in OSCCAL schreiben lasse, dann scheint das Teil
nicht mit 8 MHz sondern deutlich schneller zu laufen.
Folgender Programmcode sollte eigentlich einmal pro Sekunde eine Portleitung
umschalten:
for(;;)
{
PORTD ^= 2;
for (uint8_t x=0; x<20; x++)
_delay_ms(50);
}
Was ich aber feststelle ist, daß in 10 Sekunden etwa 15 mal umgeschaltet
wird. Der Oszillator läuft also offenbar eher mit 12 MHz als mit 8 MHz. Ich
verstehe nicht, wie das sein kann.
entwickelt. Da Platz eingespart werden muß, soll die Schaltung mit dem
internen RC-Oszillator bei 8 MHz laufen. Auf einem STK500 Board läuft das
alles auch einwandfrei.
Nun habe ich eine kleine Platine entwickelt, auf der ein ATmega8 im TQFP
Gehäuse sitzt. Wenn ich diese eigentlich korrekt programmiere, also die
Fuses entsprechend einstelle und auch das 8 MHz Kalibrationsbyte auslese
und durch mein Programm in OSCCAL schreiben lasse, dann scheint das Teil
nicht mit 8 MHz sondern deutlich schneller zu laufen.
Folgender Programmcode sollte eigentlich einmal pro Sekunde eine Portleitung
umschalten:
for(;;)
{
PORTD ^= 2;
for (uint8_t x=0; x<20; x++)
_delay_ms(50);
}
Was ich aber feststelle ist, daß in 10 Sekunden etwa 15 mal umgeschaltet
wird. Der Oszillator läuft also offenbar eher mit 12 MHz als mit 8 MHz. Ich
verstehe nicht, wie das sein kann.
--
"Erst war es ein Kernel alle halbe Jahre, zum Schluss konnte ich mit
dem Compilieren nicht mehr aufhören." (Torsten Kleinz im IRC)
"Erst war es ein Kernel alle halbe Jahre, zum Schluss konnte ich mit
dem Compilieren nicht mehr aufhören." (Torsten Kleinz im IRC)