mr.burns
26.12.2011, 20:47
Hallo,
ich habe einen Atmega32 mit 1 MHz auf einem STK-600 laufen.
Der Takt kommt vom STK-600, am XTAL1 kann ich per Ossi ca. 1 MHz messen.
Habe nun folgenden simplen Code übersetzt (mit AVR Studio 5 Optimierung -O1) dann zum Atmega32 übertragen:
int main(void)
{
DDRD |= 0x04; // Bit 2 auf Ausgang setzen;
while(1)
{
PORTD ^= ( 1 << PD2 ); // PD2 toggeln
}
}
Wenn ich nun an Pin 2 von PortD messe, bekomme ich 'nur noch' 66 kHz angezeigt.
Wenn ich mit -O3 kompiliere ändert sich nichts.
Warum kommt von dem 1Mhz bei so simplen Code keine höhere Frequenz am PD2 an? Ist der Compiler nicht effizient oder mache ich einen Denkfehler?
Danke für Infos!
ich habe einen Atmega32 mit 1 MHz auf einem STK-600 laufen.
Der Takt kommt vom STK-600, am XTAL1 kann ich per Ossi ca. 1 MHz messen.
Habe nun folgenden simplen Code übersetzt (mit AVR Studio 5 Optimierung -O1) dann zum Atmega32 übertragen:
int main(void)
{
DDRD |= 0x04; // Bit 2 auf Ausgang setzen;
while(1)
{
PORTD ^= ( 1 << PD2 ); // PD2 toggeln
}
}
Wenn ich nun an Pin 2 von PortD messe, bekomme ich 'nur noch' 66 kHz angezeigt.
Wenn ich mit -O3 kompiliere ändert sich nichts.
Warum kommt von dem 1Mhz bei so simplen Code keine höhere Frequenz am PD2 an? Ist der Compiler nicht effizient oder mache ich einen Denkfehler?
Danke für Infos!