Anfängerprobleme ATmega16

Gast #156228
Lesenswert?
• ▲
▼
Hallo allerseits,

ich bin Anfänger was die Microcontrollerprogrammierung angeht und mache
gerade meine ersten Schritte auf einem ATmega16-16PI. Ich habe mir schon
verschiedene Tutorials zur Assemblerprogrammierung durchgelesen und
soweit auch verstanden. Ein erstes Programm, das aus einem
Softwarecounter mit zwei verschachtelten Schleifen besteht und eine LED
blinken lässt, funktionierte prächtig.
Das Problem, an dem ich nun aber schon stundenlang festhänge, ist das
simple Einlesen eines Ports. Wie im angehängten Quelltext ersichtlich,
möchte ich PortD einlesen und die Werte an PortC ausgeben. An C0 hängt
eine LED, D0 lege ich extern auf 0V/5V. Doch Eingaben an diesem Port
bewirken rein gar nichts. Aktiviere ich die Pullups wie im Quelltext
gezeigt, dann geht die LED an, auch wenn ich D0 auf Masse lege, am
offenen Eingang D0 sind 5V messbar. Deaktiviere ich die Pullups
hingegen, dann ist auch die LED aus, unabhängig davon, was ich mit D0
mache.
Wo steckt mein Denkfehler, oder ist der Controller fehlerhaft?
Vielen Dank schon mal für die Hilfe.

Gruß,
Björn
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.