www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP-GCC und Zeitschleifen


Autor: Thomas Fuchs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe mit folgendem Codefragment ein Problem:

for(j=0;j<6000;j++) _asm_ __volatile__("; loop");

Also eine Schleife um ein wenig Zeit zu schinden. Habe mich auch an die 
Dokumentation gehalten mit __asm.... Allerdings funktoniert die Schleife 
nicht. Es läuft zu schnell. Als Referenz nutze ich den IAR Compiler (4kB 
Version). Dort funktionierts. Irgendwelche Ideen?

Thomas Fuchs

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1) Welche Optimierungsstufe?

2) Wie sieht der erzeugte Assemblercode aus?

Autor: Thomas Fuchs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie stelle ich die Optimierungsstufe den ein?
Bei der Anleitung zum MSPGCC habe ich keine möglichkeit gefunden.

Der Assemblercode ist wie folgt:
  for(j=0;j<18000;j++) _asm_ __volatile__("; loop");
   c13e:  0f 43         clr  r15       ;
   c140:  3f 50 19 00   add  #25,  r15  ;#0x0019
   c144:  3f 90 50 46   cmp  #18000,  r15  ;#0x4650
   c148:  fb 2b         jnc  $-8          ;abs 0xc140

Der Code sieht eigentlich OK aus. Der richtige Wert wird geladen (Hex 
Zahl). Ich habe allerdings keine Ahnung wieso zum r15 eine 0x19 addiert 
wird. Wird aber auch keinen grossen Unterschied für meine 
Zeitverzögerung machen.

Müsste mal den Assemblercode vom IAR nehmen und vergleichen. Habe dazu 
aber noch keine Zeit gefunden.

Thomas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.