mikrocontroller.net

Forum: Compiler & IDEs Portpin ansteuern


Autor: jga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte ein einzelnes Portpin(ATMega162) ansteuern(setzen bzw. 
rücksetzen in der Art und Weise -> PINB_1=1; PINB_1=0;), jedoch habe ich 
leider noch keine Definition gefunden.

Komischerweise funktioniert der Befehl sbi(PORTB,1) oder cbi(PORTB,1)

bei mir nicht. Welche lib muss denn dabei eingebunden werden bzw.muss im 
Makefile etwas angepasst werden?

Kann mir jemand weiterhelfen?

Danke

jga

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<Glaskugel Modus>

Du benutzt gcc. Hast die passenden HeEaderdateien eingebunden.....

</Glaskugel Modus>

Ein paar Infos mehr wären auch nicht schlecht ;-)
Z.B. den Code hier posten. Dann könnte man evtl. helfen.

Autor: jga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ja ich benutze gcc. kannst du mir sagen welche headerdateien ich z.B. 
für sbi und cbi benötige?

den code kann ich derzeit nicht posten, bin nicht zuhause:)-

Danke

jga

Autor: Hmm... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz portabel ohne GCC-spezifische Makros:
  PORTB |=    0x01;   /* Pin B.0 auf 0 setzen */
  PORTB &= ~(0x01);   /* Pin B.0 auf 1 setzen */

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm... wrote:
> Ganz portabel ohne GCC-spezifische Makros:
  PORTB |=    0x01;   /* Pin B.0 auf 0 setzen */
  PORTB &= ~(0x01);   /* Pin B.0 auf 1 setzen */

In den Kommentaren sind 0 und 1 vertauscht.

Autor: jga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab vergessen, daß ich die zwei nibbles(0-3 und 4-7) seperat beschreiben 
möchte, daher ist der zugriff auf das einzelne portpin notwendig(also 
entfällt z.b. ein zugriff über PORTB |= 0x01;). ansonsten überschreib 
ich mir immer wieder das obere oder das untere nibble.

welche möglichkeit besteht hier?

jga

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jga wrote:
> hab vergessen, daß ich die zwei nibbles(0-3 und 4-7) seperat beschreiben
> möchte, daher ist der zugriff auf das einzelne portpin notwendig(also
> entfällt z.b. ein zugriff über PORTB |= 0x01;). ansonsten überschreib
> ich mir immer wieder das obere oder das untere nibble.
Du sollst den Artikel über Bitmanipulation, den ich oben schon mal 
verlinkt habe, auch lesen! Mit "PORTB |= 0x01;" bzw. "PORTB &= ~0x01;" 
wird gar nichts überschrieben, außer dem einen einzigen Bit mit der 
Nummer 0.

Autor: jga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du hast recht, danke für den hinweis:))-

jga

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.