-         

Ergebnis 1 bis 2 von 2

Thema: Geschwindigkeit?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.11.2006
    Beiträge
    35

    Geschwindigkeit?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    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!

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Bei dem Code hat der µC schon einiges zu tun. Es ist ja nicht so das aus einem C Befehl genau ein ASM Befehl wird. Den erzeugten Code kann man sich auch gleich ansehen. GCC erzeugt auch einen so einigermaßen lesbaren ASM Code.

    Im Idealfall müsste der Code für die Schleife etwa so aussehen:
    Start:
    In R16, PORTD
    EOR R16, 8
    OUT PORT16, R16
    RJMP start

    Der handoptimierte ASM code braucht 5 Zyklen für einen Druchlauf und würde damit eine Frequenz von 100 kHz erzeugen. Das ist der Compiler mit 66 kHz (also 7 oder 8 zyklen für die Schleife) schon nicht so schlecht, könnte aber natürlich besser werden.

    Bei -O3 könnte man theoretisch ein loop unrolling erwarten - wird hier aber offensichtlich nicht gemacht.

Ähnliche Themen

  1. geschwindigkeit
    Von jonasspieker im Forum Robby RP6
    Antworten: 15
    Letzter Beitrag: 14.01.2010, 17:14
  2. Geschwindigkeit I²C und RS485
    Von Tido im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 23.11.2009, 14:38
  3. GCC Geschwindigkeit
    Von Guy im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 20.11.2006, 17:09
  4. KFZ Geschwindigkeit ??
    Von LC-HC im Forum Sensoren / Sensorik
    Antworten: 18
    Letzter Beitrag: 04.03.2006, 15:53
  5. PIC Geschwindigkeit
    Von .Johannes. im Forum PIC Controller
    Antworten: 4
    Letzter Beitrag: 25.02.2005, 18:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •