Nicht umsonst gibt es ja das OSCCAL Register, mit dem man den internen
Oscillator kalibrieren kann. Auf der Amtel Seite gibt es dazu eine
Application Note dazu.
meine testroutine schreibe ich mit Winavr
#define test <hier den Wert einsetzen>
DDRA = 0xff;
OSCCAL = test;
while(1)
{
PORTA ~= PORTA;
}
dafür brauch er genau 10 Takte also Frequenz an den Ports messen
multiplizieren mit 10 und dann hat man die Frequenz des internen
Oscillators. Bei zu starken abweichungen die Variable,Konstante,
#define Makro oder was auch immer verändern, neu programmieren
Frequenz messen vergleichen, und nach spätestens 10 durchläufen
hat man die gewünschte Frequenz. Damit habe ich bisher jede RS232 zum
laufen gebracht. Den Quartz kann man sich schenken, wenn man nicht
gerade den Atmega mit über 8Mhz betreiben will.