max Schaltfrequenz von Ausgängen

Gast #2746535
Lesenswert?
• ▲
▼
Stefan schrieb:
> kann man mit Ausgängen von ATmega/ATtiny Frequenzen von 20KHz erreichen,
> und die Flanken noch "schön steil" sind.

Was meinst du, was der Prozessor tut, wenn man ihn in zwei direkt 
aufeinanderfolgenden Assemblerbefehlen den Portzustand ändern läßt?

Manchmal (eigentlich ziemlich oft) frage ich mich, wozu die Hersteller 
sich die Mühe mit den Datenblättern machen und warum jeder für eine 
längere Zeit zur Teilnahme am Schulunterricht verpflichtet ist. Damit 
sollte es doch kein Problem sein, sich im Datenblatt die Spezifikation 
für die Flankensteilheit eines Ausgangssignals herauszusuchen. Beim 
ATmega8 ist bei den SPI Timing Characteristics z.B. für die Rise/Fall 
time ein typischer Wert von 10ns angegeben.
Gast #2746637
Lesenswert?
• ▲
▼
W.A. schrieb:
> Manchmal (eigentlich ziemlich oft) frage ich mich, wozu die Hersteller
> sich die Mühe mit den Datenblättern machen

Wie du an der Uhrzeit siehst war es recht spät, ich sau müde, und hatte 
einfach keine lust mehr mich durchs Datenblatt zu wühlen. Und da es 
bestimmt ne menge Leute gibt, die dass wissen, und mit nem Einzeiler 
beantworten können, hab ich einfach mal gefragt und bin in die Haia 
gegangen. Verzeihung das ich ein paar Bits und Bytes und 2 Minuten 
deines Lebens verschwendet habe.

W.A. schrieb:
> und warum jeder für eine
> längere Zeit zur Teilnahme am Schulunterricht verpflichtet ist

Beruhig dich, ich wollte nur Zeit sparen, oder glaubst du ich bastl 
freiwillig um die Uhrzeit mit Elektronik rum?

Troztdem Danke für die Antworten
Gruß Stefan
#2746641
Lesenswert?
• ▲
▼
Du kannst Ausgänge so schnell umschalten, wie es der Befehlssatz 
zulässt.

Wenn Du einen Ausgang umschaltest, und direkt danach an einem Eingang 
etwas einlesen willst, was von dem Ausgang abhängt, musst Du allerdings 
eine Verzögerung berücksichtigen.

Bei AVR Mikrocontrollern liefern Lese-Befehle auf Eingänge immer den 
Wert, der einen Taktzyklus vorher anlage. Und bei Ausgaben gab es auch 
eine kleine Verzögerung, soweit ich mich erinnere.

Zwischen dem Schreiben und Lesen der Antwort ist daher in der Regel ein 
NOP nötig. Oder einfach zwimal hintereinander lesen tuts auch. 
Angenommen die acht Bits von Port A (Ausgang) sind mit Port B (EIngang) 
verbunden:

PORTA = 0;
in=PORTB;
in=PORTB;
if (in!=0) printf("Fehler");

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.