physikalischen Zustand der Ausgänge lesen

Gast #808629
Lesenswert?
• ▲
▼
Brauchste garnich warten. Les doch einfach nach, wie das Timing des AVR 
ist.

Wenn du z.B. "sbi" machst, dauert diese Instruktion genau einen 
Prozessortakt. Und dann ist der Pin auch definitiv gesetzt...es sei 
denn, du hängst da riesige Kapazitäten dran...

Nochwas: PORTx und PINx-Register sind unabhängig. Wenn du einen Pin aus 
Ausgang einstellst (DDRx = 1), dann den Pin auf "High" ziehst (PORTx = 
1), und diesen Pin dann von außen auf "Low" zwingst (z.B. Kurzschluss 
nach Masse), dann ist PINx auch 0. Evtl. hastu das ja gemeint.
Gast #808632
Lesenswert?
• ▲
▼
Bruno wrote:
> Du mußt den Pin als Einganf setzen (DDRx) und dann zb in einer
> While-Schleife den Port bzw Pin abfragen. Wenn die Bedingung erfüllt
> ist, springst du aus der Schleife.

Er will doch einen Pin setzen, also muss er wohl als Ausgang 
konfiguriert werden.

Ab wie Gabriel und ich schon sagten, das is Käse, weils ein genau 
definiertes Timing gibt.
Gast #808634
Lesenswert?
• ▲
▼
ich möchte ein Pin kurz high low togglen. vom 8051 kenn ich noch das 
problem, das wenn man das port schreibt und sofort "weiterrennt" im 
Programm, dass man schon zwei zeilen weiter ist im Code, der Pin aber 
noch gar nicht tatsächlich highpedel hat.
also

PORTC = 0x01;
PORTC = 0x00;

würde nicht wirkich was bewirken, weil bei der zweiten komandozeile der 
PIn noch gar nicht auf High ist. Ist das beim Atmel auch so oder würde 
das so funktionieren nund eine Impuls am Ausgang erzeugen?

Alex
Gast #808735
Lesenswert?
• ▲
▼
Wenn der Puls nur um wenige Taktzyklen gedehnt werden soll, sind NOPs
sicher die beste Lösung. Die möglich Zeitauflösung ist hier 1 Takt-
zyklus, der Speicherplatzbedarf soviele Worte, wie NOPs eingefügt
werden.

Wenn's mehr sein soll, kannst du auch _delay_us aus der AVR-Libc
verwenden. Damit lassen sich Verzögerungen ab 3 Taktzyklen
realisieren. Die Zeitauflösung beträgt (bei Verzögerungen von bis zu
768 Zyklen) 3 Taktzyklen, der Speicherplatzbedarf unahbhängig von der
Verzägerungszeit 3 Worte.

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.