mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega anfänger Probleme


Autor: Matthias S. (bruteforce)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich versuche grade ein bisschen mit den Ports zu arbeiten und habe zu
Testzwecken folgendes auf einem Breadboard aufgebaut:

An PortA:
PinX---R 240 Ohm---LED---Vcc

und an PortC:
PinX---R 12k Ohm---Vcc
     \
      --[  ]-------GND
       (als Schalter sozusagen)

Nun habe ich folgendes Programm geschriben:
---
#include <avr/io.h>

int main()
{
  DDRA = 0xff;
  DDRC = 0;
  while (1)
  {
    PORTA=PINC;
  }
}
---
Wenn der Microkontroller nun läuft siehts so aus:

(kein "Schalter" geschlossen)

PA0: LED aus
PA1: LED aus
PA2: LED an
PA3: LED an
PA4: LED an
PA5: LED an
PA6: LED aus
PA7: LED aus

Beim schließen der Schalter 2-5 an PortC passiert nichts. Wenn man
0,1,6 oder 7 auf GND zieht, gehen die entsprechenden LEDs an (Wobei ich
ab und zu schon erlebt habe das wenn ich PC0 gegen GND ziehe, PA0 und
PA1 an gehen. Das mag aber evtl auch an der Breadboard konstruktion
liegen)

Nun habe ich erstmal probiert ein bestimmtes Bitmuster auf PortA
auszugeben, was auch korrekt funktionierte. Deshalb gehe ich mal davon
aus, dass da beim Eingang etwas nicht korrekt läuft. Die Schaltung
läuft an einem Labornetzgerät auf genau 5V.

Könnte mir da vielleicht jemand helfen?

CU
Matthias

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass mich raten: Meta16/32 und JTAG-Fuse nicht abgeschaltet?

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens ... den 12KOhm Widerstand kannst du auch weglassen. Intern ist
in allen AVRs ein Pull-up Widerstand eingebaut, den man bei Bedarf
zuschalten kann. (Pin als Eingang mit PORTC.X = 1).

Zum Problem : bei Megas muss man das JTAG abschalten, um den kompletten
PORTC verwenden zu können. (war auch mein erstes AVR-Problem ;)

Autor: Matthias S. (bruteforce)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jau super!
An die Fuses hab ich mich noch nicht rangetraut... ;)
Die Pins 2-5 gehen jetzt.

Besten Dank!

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Abschalten des JTAG-Interfaces geht auch ohne Manipulation an den
Fuses. Einfach zweimal hintereinander JTD in MCUCSR setzen.

...

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da sieht man mal wieder wie hilfreich Foren sind!

ich hatte genau das selbe problem.
hab dann das fuse bit gelöscht und nu geht es..
da soll soll erstmal einer draufkommen... im datenblatt steht zwar dass
des net geht wenn JATG enabled ist, aber man geht ja nicht davon aus,
dass diesen bit dafaultmäßig gesetzt ist und sucht stundenlang nach
anderen fehlern..

ein hoch auf mikrokontroller.net
gruß martin

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.