Pin setzen und löschen über Funktionsaufruf in C

OP #1075785
Hallo,

ich hab mal wieder ein Brett vorm Kopf und bitte um Abhilfe.
Folgendes, ich möchte gezielt einen einzelnen Portpin setzen. 
Vorzugsweise mit einem Befehl wie z.B.

i = 0; //oder eben i = 1;
PA7 = i;

(geht so in der Form natürlich nicht, ist mir schon klar).
Ich könnte natuerlich einfach eine if-Anweisung schreiben die den 
Variablenwert abfragt.

  if(i == 1)
   PORTA |= (1<<PA7);
  else
   PORTA &= ~(1<<PA7);
Aber genau diese Anweisung möchte ich eigentlich vermeiden. Geht sowas 
überhaupt?

Derzeit ratlose Grüsse,
Rüdiger
#1075804
Ich nehme an Du beziehst Dich auf den AVR Prozessor.
Das es meines Wissens auch keinen Assembler Befehl zum Setzen eines Bits 
nach Deinem Wunsch gibt, müßte auch der Compiler dies wieder in einen 
Sprungbefehl und einen sbi oder cbi Befehl umsetzen.
Es wird also (außer Buchstaben beim Schreiben) nichts gewonnen.
Wenn Du unbedingt weniger schreiben willst könntest Du ein Makro 
verwenden.
OP #1075838
Ohja, entschuldigung, um einen ATMega128 gehts. Ich hatte glaub ich 
irgendwie noch die alten Assemblerbefehle, die  von damals im 
Hinterkopf. Ich hab nun auch nochmal etwas rumexperimentiert und bin 
auch zu keinen schlauen Lösung mehr gekommen. Nunja, dann kommmt an der 
stelle eben eine Abfrage rein, ist ja auch kein beinbruch. ;)

Vielen Dank für  die Antworten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.