www.mikrocontroller.net

Forum: Compiler & IDEs PortD Pin2 nutzen geht nicht


Autor: Markus _neu (markush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leutz,

ich hab folgenden Code:
DDRD |= (1 << DDD0) | (1 << DDD1) | (1 << DDD4) | (1 << DDD5);    
DDRD &= ~(1 << DDD6) & ~(1 << DDD2);            
PORTD |= (1 << PD6) | (1 << PD2) | (1 << PD4) | (1 << PD5);

Zusätzlich läuft INT0. Der Interrupt arbeit auch, die Routine wird wie 
gewünscht aufgerufen.

Das Problem ist nun dass der oben angesprochene PIND2 nicht funzt! Warum 
weiss ich auch nicht. Normalerweise sollte er ja HIGH sein sowie PIND6 
auch.
Aber er ist LOW und ich weiss ehrlich gesagt nicht warum?!? Hängt das 
mit INT0 zusammen? Der µC ist ein 2313, ich hab auch schon ausgetauscht, 
Hardware ist also in Ordnung.

Gibt's da vielleicht ne Abhängigkeit mit IRQ's?

Markus

Autor: Markus _neu (markush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Öhm,

auch das geht nicht:
DDRD = 0x00;
PORTD = 0xFF;

Leeres Programm, kein Interrupt definiert, nix! Alle PIN's vom PortD 
sind HIGH nur am Pin 6 des µC ist kein HIGH?????

Seh ich den Wald vor lauter Bäumen nicht, oder wie?

Markus

Autor: Henrik J. (henrikj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seite 47 Datenblatt Tiny2313

"The DDxn bit in the DDRx Register selects the direction of this pin. If 
DDxn is written
logic one, Pxn is configured as an output pin. If DDxn is written logic 
zero, Pxn is configured
as an input pin."

Is klar, oder? N typischer Anfängerfehler (Ich hab den auch gemacht ;) )

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

Bewertung
0 lesenswert
nicht lesenswert
Das sollte in dem Fall kein Problem sein.

Er konfiguriert alle Pins auf Eingang und
schaltet auf jedem Pin den Pullup Widerstand ein.
Damit sollte sich mit einem Voltmeter am Pin ein
High-Pegel einstellen.

Autor: Markus _neu (markush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Henrik Jahnke wrote:
> Seite 47 Datenblatt Tiny2313
>
> "The DDxn bit in the DDRx Register selects the direction of this pin. If
> DDxn is written
> logic one, Pxn is configured as an output pin. If DDxn is written logic
> zero, Pxn is configured
> as an input pin."
>
> Is klar, oder? N typischer Anfängerfehler (Ich hab den auch gemacht ;) )

Hä??? Das musst du mir erklären. Was mache ich nicht so wie es da steht? 
Der PD2 soll ja ein Eingangspin sein und wenn ich den PullUp einschalte 
muss da ein HIGH Pegel zu messen sein.

@Karl heinz:
Kannst du dir das irgendwie erklären? Kann es das die beiden AT90S2313 
defekt sind? Wohl eher nicht, hatte bisher noch nie einen defekten - und 
das bei der rumtesterei und Kurzschlüsse... ;-)

Gruss, Markus

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

Bewertung
0 lesenswert
nicht lesenswert
Nein. Erklären kann ich das so auch nicht.

Ich hab allerdings nicht das Datenblatt studiert, ob
es da irgendwelche Sonderfunktionen oder sonstige
Spezialitäten auf dem Pin gibt.

Autor: Markus _neu (markush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, werd das heute abend nochmal testen. Da ich noch andere Pins freihab 
werd ich da einen anderen nehmen und gut is.

Autor: Markus _neu (markush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok Leutz,

sowas kann man auch nicht erklären. Ich hab mir die Platine jetzt mal 
unter der Lupe angesehen. Und da hab ichs entdeckt: Feiner Schluss am 
PortPin mit Masse!
Gegen sowas ist natürlich jede Software machtlos :-). Auf alle Fälle 
funzt es jetzt und die AVR's haben's auch überlebt! ;-)

Gruss, Markus

Autor: Henrik J. (henrikj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nice. Ist natürlich auch ne fiese Nummer. Manchmal sind die Sachen ganz 
einfach.

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.