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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren