Taktzyklus AtMega

Gast #4436059
Lesenswert?
• ▲
▼
Hi,

es geht um einen Mega328P (den ich von einem Arduino habe).

Ich habe Zeitkritische Portabfragen und im Worstcase Szenarion (dh Port 
ändert sich genau nachdem ich gerade abgefragt habe, vergehen zwischen 
zwei abfragen 10 Takte (laut Datenblatt - instructionen rjmp sbic subi 
brne add sbis). Das gute Stück läuft mit dem standard Arduino Takt = 16 
Mhz.
Das heißt doch nun das meine 10 Takte 625ns benötigen?!
Der abzufragende Port ändert sich aber höchstens alle 2us ... also genug 
Luft.

Es funktioniert allerdings bei weitem nicht bei dieser Frequenz, kann es 
sein das da doch ein Faktor noch drin steckt sowas wie instrction fetch 
& decode extra takte sind?

Oder gilt ein Prescaler für einen Timer für den gesamten Controller?
Gast #4436062
Lesenswert?
• ▲
▼
ARM_Takt schrieb:
> Es funktioniert allerdings bei weitem nicht bei dieser Frequenz, kann es
> sein das da doch ein Faktor noch drin steckt sowas wie instrction fetch
> & decode extra takte sind?

nein, so etwas gibt es dort nicht.

Warum nimmst du nicht einfach den Simulator und schaust wie die Zeit 
vergeht?

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.