www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme beim AVR-Tutorial mit Pollin EvaBoard


Autor: Adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein Problem beim Eingang einlesen.

.include "m8def.inc"

         ldi r16, 0xFF
         out DDRB, r16

         ldi r16, 0x00

         ldi r16, 0xFF
         out PORTD, r16

loop:
         in r16, PIND

         out PORTB, r16
         rjmp loop

Mein Problem ist das bei dem Pollin Board sowohl Taster und auch die 
Leds alle an Port D angeschlossen sind. Ich bräuchte es vom Sinn her so:

         in r16, PIND3
         out PB5, r16
         rjmp loop

So funktioniert das aber nicht. Ich habe schon alle möglichen 
Schreibweisen probiert und Anleitungen durchforstet, finde aber nicht 
wie man in Assembler nur einen Eingang ausliest und auch direkt wieder 
ausgibt.

Danke schon mal

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Pseudocode:

PIND in Register1 einlesen

Bitmaske mit gesetztem 3.Bit in Register2 stecken

Register1 mit Register2 ver&en, 3.Bit ist jetzt herausgegriffen

Register1 um 2 bits verschieben

Register1 auf PortB ausgeben

Wenn du noch mehr Bits brauchst, oder mehr Bits umsortieren musst,
brauchst du noch ein Register wo du den kram zwischenspeicherst.
Einzelne Bits in ein Register zu bekommen machst du mit verODERn.

mfg mf

Autor: Martin Vogel (oldmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Im Prinzip mußt du lernen, das dies nix mit dem pollin Board zu tun hat, 
sondern nur eine allgemeine Anleitung ist, wie Portbits eingelesen und 
ausgegeben werden. Wie das geht, steht im Tutorial drin. Mit C&P wird 
das nix. Verstehe erst einmal, welcher Befehl einen Portpin 
konfiguriert, also ihn zum Eingang oder Ausgang macht. Des weiteren mußt 
du wissen, ob es was bringt, die PullUp-Widerstände einzuschalten. Wird 
dir beim Pollin Board nix nützen, da die Taster an 5 V sind, daher 
brauchst du schon mal PullUp, also Widerstände gegen GND, das geht nur 
extern. Mein Tip: arbeite dich erst mal durch die Tutorials durch.
Gruß oldmax

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.