mikrocontroller.net

Forum: Compiler & IDEs AT90 arbeitet langsamer als erwartet


Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Problem mit meinem AT90USB1287.
Ich will einen Takt für ein externes Gerät erzeugen um eine Adresse zu 
inkrementieren.
Dazu setzte ich jeweils ein Bit auf einem Steuerport und anschließend 
setzte ich es wieder zurück.

PORTD |= (1<<4);
PORTD &= ~(1<<4);

Wenn ich diesen Code kompiliere kommt auch tatsächlich im Assemblercode
die zwei Befehle SBI und CBI direkt hintereinander.
Da der SBI und der CBI laut Datenblatt je zwei Takte benötigt komme ich 
bei 8Mhz auf eine Pulslänge von Max. 0,5µS.
Dieser Wert bestätigt mir auch der Simulator.
Wenn ich jetzt aber mit dem Oszilloskop nachmesse komme ich auf eine 
Pulslänge von 2µS.
Ich verwende den bereits auf dem Controller installierten Bootloader um 
meine Programme per USB auf den Controller zu übertragen.
Kann es sein, dass mein Programm nicht im RAM steht sondern irgendwo in 
einem "schlechter" zugänglichen Adressbereich auf den der AVR nicht mit 
dem vollen Takt zugreifen kann ?

Ich hoffe mir kann jemand helfen.
Gruß Holger

Autor: marvin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
IMHO können die AVRs keine Programme aus dem RAM ausführen.
Ist die Taktquelle richtig eingestellt? Beim AT90USB1287 weiss ichs 
nicht, aber bei den neueren AVRs kann ein interner Taktgenerator 
eingestellt werden. Wenn der nicht richtig definiert ist, kann das nicht 
funktionieren.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim AT90USB1287 ist defaultmäßig der interne RC-Oszillator aktiviert, 
der aber mit 8 MHz läuft, so dass es da nicht zu Problemen kommen 
sollte, vorausgesetzt, man fummelt nicht an den Fusebits rum.

Bei den AVRs steht das Programm grundsätzlich im Flash und nicht im RAM. 
Das hat auch nichts mit der "bescheidenen Meinung" von marvin zu 
tun...;-) "Bevorzugte" Speicherbereiche gibt es aber auch im Flash 
nicht.

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.