AVR JTD setzen

Gast #1204612
Lesenswert?
• ▲
▼
Im Datenblatt des ATmeag324P auf Seite 274 steht. Das wenn ich das JTD 
Bit im MCUCR Register setzten will ich folgendes tuen.

"The application software must write this bit to the desired value twice 
within four cycles to change its value."

Nun versuch ich folgendes Optimierung ist natürlich ausgeschaltet.

(Das JTD Bit ist Bit Nummer 7 im MCUSR Register deshalb 0x80)

u8 temp;
  temp=MCUSR;
  temp=temp|0x80;
  MCUSR=temp;
  MCUSR=temp;
  MCUSR=temp;
  MCUSR=temp;
Ich will damit erreichen dass ich die JTAG Pins als I/O Pins nutzen 
kann.
Flashen tue ich das ganze mit meinem DragonBoard über JTAG.

Das Bit wird aber nicht gesetzt.

Hat Jemand vieleicht erfahrung mit dem Problem
Moderator Persönliche Seite #1204626
Lesenswert?
• ▲
▼
Timur wrote:

> Nun versuch ich folgendes Optimierung ist natürlich ausgeschaltet.

Was daran ,,natürlich'' sein soll, darfst du noch erklären.

Fährst du ,,natürlich'' dein Auto mit angezogener Handbremse,
damit es nicht so schnell fährt?

Genau das ist jedenfalls dein Problem.  Ohne Optimierung generiert
der Compiler Code, der so schnarchlahm ist, dass die 4-Zyklen-
Bedingung nicht eingehalten wird.

Wenn's partout ohne Optimierung sein muss:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=76590#553836
Moderator Persönliche Seite #1204643
Lesenswert?
• ▲
▼
Timur wrote:

> Die Optimierung hatte ich ausgeschaltet weil ich angst hatte das diese
> Codeschnippsel dann wegoptimiert wird

Zugriffe auf IO-Register werden nie weg optimiert.  Daher ist es
auch eine sichere Bank, zum Debuggen einfach ein
1
PORTB = 42;

irgendwo einzubauen, da man an dieser Stelle immer einen Breakpoint
setzen kann.
Gast #1204651
Lesenswert?
• ▲
▼
Vielen Dank für den Tipp

Den alten Codeschnippsel den ich nur zum debuggen aufgebläht hatte habe 
ich jetzt durch diesen erstzt und die Optimierung im GCC auf Os gestellt 
jetzt funkt es.

*************
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
*************

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.