mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zustand eines Ausgangsportpins abfragen


Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich setze bei einem ATMEGA32 einen Portpin auf high:

sbi porta.6

Frage: Wie kann ich im Programmverlauf abfragen, ob der Pin High oder 
Low gesetzt wurde?

sbis PINA.6 oder sbis PORTA.6 funktioniert bei mir nicht.


Holger

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für längere Impulse einfach LED+Rv ran.
Für kurze Impulse mit Oszi anschauen.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht der Codeteil nach dem sbis PORTA.6 aus?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Holger schrieb:
> Frage: Wie kann ich im Programmverlauf abfragen, ob der Pin High oder
> Low gesetzt wurde?
Als Denkanstoss: du (bzw. dein Programm) mußt das doch wissen, denn du 
hast den Pin doch selber auf diesen Pegel gesetzt...

> sbis PINA.6 ... funktioniert bei mir nicht.
Dann liegt das Problem woanders...
Evtl. wird der Port nur sehr kurz gesetzt und ist schon wieder '0', wenn 
du ihn abfragst...

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also:

test: sbis PORTA.6
      jmp test0
      cbi PORTA.6
      ret

test0: sbi PORTA.6
       ret




Also ich möchte den PIN A.6 bei jedem Unterprogrammaufruf von test 
toggeln.

Holger

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
test: sbis PORTA , 6
      rjmp test0
      cbi PORTA , 6
      ret

test0: sbi PORTA , 6
       ret

> Also ich möchte den PIN A.6 bei jedem Unterprogrammaufruf von test
> toggeln.

PIN A.6 = Schreibfehler?

BTW. bei manchen modernen AVR kann man ein Bit im PORT Register 
tatsächlich toggeln, wenn man das betreffende Bit im PIN Register 1 
setzt. Ich weiss aber nicht, ob der Atmega32 das bereits kann (=> 
Datenblatt).

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Holger schrieb:
> Also ich möchte den PIN A.6 bei jedem Unterprogrammaufruf von test
> toggeln.

Schau mal im Datenblatt deines AVRs, ob es zum toggeln nicht reicht, 
einfach eine "1" in das entsprechende Bit vom zugehörigen "PIN"-Register 
zu schreiben.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Holger schrieb:
> Also ich möchte den PIN A.6 bei jedem Unterprogrammaufruf von test
> toggeln.
Und das tut er nicht?
Hast du den schon auf Ausgang geschaltet (via DDRA)?

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja klar:

ldi temp1,0xff
out ddra,temp1



Holger

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du den Portpin mit cbi PORTA,6 und sbi PORTA,6 statisch 
umschalten?

Autor: Peter R. (pnu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wo sind die rcall, die zum ret gehören bzw. was sollen die rets

möglicherweise steckt das Programm in irgendeiner Schleife und kommt 
garnicht zur Ausführung dieser Befehle. So, wie oben nach "also:" 
geschrieben, kann das Programm garnicht laufen

ersetze erst einmal das "ret" jeweils durch "rjmp test"
und prüfe dann die Funktion

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.