mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega16 PortD2 als Ausgang nutzen


Autor: Icarus N. (vandor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ich bin dabei meine ersten Erfahrungen mit einem Microcontroler zu 
sammeln. Also hab ich mir ein einfaches Board zusammengelötet und das 
funktioniert auch soweit.
Ich wollte über einige Ports LEDs ansteuern. Das klappte auch sehr gut, 
nur an PortD2 bleibt die LED leider schwarz. Ich weis nicht warum.
Mit dem ACR Studio (+winavr) hab ich ein einfaches simples c-Programm 
geschrieben welches Port A-D 0-7 alle als Ausgänge definiert und selbige 
dann einschaltet.
An einigen Eingängen hab ich LEDs angeschloßen (nicht direkt, der 
Microcontroler schaltet Tranistoren frei), dich eigentlich alle leuchten 
sollten. Aber wie gesagt an PORT D 2 bleibt leider dunkel und ich weis 
nicht warum. die anderen LEDS an PORT D 3-7 leuchten alle. Ich würd nur 
ungern etwas umlöten müssen, sehr ihr vielleicht einen Fehler den ich 
mache? Oder kann ich den INT0 (PORTD2) gar nicht als Ausgang nutzen?

Ich hoffe ihr könnt mir helfen.
Vielen Dank im Vorraus

Icarus

Anbei den Quellcode
CODE:

#define LEDSA PORTA
#define LEDSB PORTB
#define LEDSC PORTC
#define LEDSD PORTD

#include <avr/io.h>
#include <stdint.h>

int main() {
DDRA = 0b11111111;
DDRB = 0b11111111;
DDRC = 0b11111111;
DDRD = 0b11111111;
LEDSA = 0b00000000;
LEDSB = 0b00000000;
LEDSC = 0b00000000;
LEDSD = 0b00000000;

while(1){
  LEDSA = 0b11111111;
  LEDSB = 0b11111111;
  LEDSC = 0b11111111;
  LEDSD = 0b11111111;

}}

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Icarus N. wrote:

> mache? Oder kann ich den INT0 (PORTD2) gar nicht als Ausgang nutzen?

DOch, kannst du. Kein Problem.

Überprüf noch mal deine Hardware auf Fehler:
Kalte Lötstellen, Leiterbahnunterbrechungen, defekte Led
und solche Dinge.

Autor: Icarus N. (vandor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Danke für den Tipp

Ich bei mir hat jeder Port einen eigenen Stecker, so das gerade mal den 
Stecker von Port D auf Port A gesteckt habe. Alle LEDs leuchten da auf. 
Allerdings will ich Port A anders nutzen. Ein weiteres Durchpiepsen der 
Leitungen ergab, dass die Lötstellen bis zu LED okay sind (wie ersteres 
Experiment schon zeigte.
Daraufhin bin ich mit meinem Messgerät an die Spitze des Pins PORTD2 in 
der Buchse (die Buchse für meinen oben benannten Stecker) gegangen und 
hab die Verbindung zu dem Beinchen des Microcontorlers getestet. Auch 
diese hat genau wie alle anderen Verbindungen einbandfreien Kontakt und 
zeigen keinen messbaren Fehler.
An den Fuse bits hab ich bisher nur auf externen Quarz umgestellt und 
JTAG deaktivert, da ich ja über ISP Programmiere.
Durch ein wenig lesen hab ich inzwischen herraus bekommen, das PORTD2 
irgendwie für "Interrputs" alternativ genutzt werden kann. jedoch konnte 
ich nicht finden wie ich diese alternative ausschalte, sofern es denn an 
ist

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Icarus N. wrote:

> Durch ein wenig lesen hab ich inzwischen herraus bekommen, das PORTD2
> irgendwie für "Interrputs" alternativ genutzt werden kann. jedoch konnte
> ich nicht finden wie ich diese alternative ausschalte, sofern es denn an
> ist

Es ist nicht defaultmässig an.
Im Grunde gibt es keinen Grund warum sich D2 anders als der
Rest verhalten sollte.
Wenn du keine LED anhängst, was sagt dein Voltmeter dann am Pin D2?

Autor: Icarus N. (vandor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, darauf hätt ich kommen können.
Dank dem hab ich den Fehler gefunden. So simpel und ich hab ihn 
übersehn. Scheinbar hab ich irgendwo PortD2 mit Masse direkt verbunden. 
Jedenfalls ist der beim Messen immer auf 0V. Darauf hin hab ich nochmal 
durchgepipst, und scheinbar hab ich mich vertan. So bin dann mal auf der 
Suche nach meinem Masseschluß.
Tut mir leid das ich mit so einem banalen Problem hier aufgekreuzt bin

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.