mikrocontroller.net

Forum: Compiler & IDEs Standard Wert von PINB


Autor: Bastian Sch. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Welchen standard Wert hat PINB, wenn man ein Programm startet? Laut
Doku n/a, allerdings habe ich durch ausprobieren festgestellt, dass der
Start Wert immer 1 ist. Hintergrund: Ich benutze Pin 0 von PINB als
Anschluss für einen Schalter, den ich pollen will (Ja, kein Interrupt).
Ich frage als erstes ab, ob dieser gleich 0 ist (bedeutete bislang für
mich gedrückt) und nach einem delay() gleich 1 (bedeutete für mich
bislang Knopf nicht gedrückt) ist. Jetzt habe ich in der Doku von Atmel
gelesen, dass der Wert n/a ist. Was habe ich davon zu halten?

Vielen Dank!

mfg

Bastian

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest keinen Port benutzen ohne ihn vorher richtig initialisiert
zu haben. Nach dem Reset ist der Port auf Eingang gesetzt.

Peter

Autor: Bastian Sch. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. Ich habe ihn als erstes über DDRB als Input Port gesetzt und dann
über PORTB = 0xFF die Pullups aktiviert. Reicht das oder muss ich noch
etwas zusätzlich tun?

Bastian

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das reicht, aber da es ein Eingabeport ist, spiegelt er natürlich
selbst nach dem Reset sofort die extern anliegenden Signale wieder,
daher das "N/A" (not applicable) im Datenblatt.  Es gibt für PINx
einfach keinen definierbaren Reset-Wert.

Wenn du mit den Pullups arbeitest, wirst du wohl sinnvollerweise den
Schalter nach Masse liegen haben, d.h. ein gedrückter Schalter liest
sich als 0-Bit aus.

Autor: leif (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Bastian,

Wenn man die Pins in der Reihenfolge

DDRB
PORTx

initialisiert (wie im AVR-Tutorial angeben), kann es passieren, daß
sofort beim Programmstart ein Schalter als gedrückt erkannt wird.

Warum das so ist steht in:

http://www.mikrocontroller.net/forum/read-1-234032...

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.