Anfängerfrage atmega16

Gast #315491
Lesenswert?
• ▲
▼
ich möchte vom port a lesen und die schalterstellungen auf port d
ausgeben. folgender code:

ldi r17, 0x00
  out DDRA,r17
  ldi r20, 0xff
  out PORTA, r20
  ; Port A als eingang und pull up widerstände aktivieren

  in r25, PORTA

  ldi r16, 0xff
  out DDRC, r16
  out PORTC, r25

die schalter liegen auf masse also müßte alles richtig verdrahte sein.
jedoch funktioniert das nicht. was mache ich falsch?
Gast #315496
Lesenswert?
• ▲
▼
eine frage hätt ich noch kann ich die PINS auch einzeln einlesen?
PINA ist in der m16def.inc so definiert:
; PINA
.equ  PINA7, 7
.equ  PINA6, 6
.equ  PINA5, 5
.equ  PINA4, 4
.equ  PINA3, 3
.equ  PINA2, 2
.equ  PINA1, 1
.equ  PINA0, 0

wenn ich im programm allerdings in r25, PINA4 schreibe statt PINA
funktioniert nichts mehr
Gast #315497
Lesenswert?
• ▲
▼
Du kannst die Pins mit einer Maskierung einzeln einlesen

in r25, PINA           ;PINA in r25 einlesen
;Maskieren mit 0b00010000 (1 << 4 bzw. 1 << PINA4):
andi r25, (1 << PINA4)

PINA4 ist nur die Zahl (Bitnummer) 4 zugeordnet. Ansonsten hat PINA4
keine Funktion. Der Assembler versteht in dem oben von Dir verwendeten
Beispiel PINA4 als Register-Adresse. Dann kann es auch nicht
funktionieren. Mit einem Skip-Befehl kannst Du den Pin separat
auswerten:

sbis PINA, 4

oder

sbis PINA, PINA4

Ansonsten: Assembler-Befehlssatz mal genauer ansehen und v.a.
verstehen, was die einzelnen Befehle machen und wie sie funktionieren!

Gruß

Johnny

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.