Probleme beim AVR-Tutorial mit Pollin EvaBoard

Gast #1805719
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
#1805768
Lesenswert?
• ▲
▼
Hallo
1
Pseudocode:
2

3
PIND in Register1 einlesen
4

5
Bitmaske mit gesetztem 3.Bit in Register2 stecken
6

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

9
Register1 um 2 bits verschieben
10

11
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
#1805780
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

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.

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.