mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Port richtung innerhalb einer Funktion bestimmen geht nicht


Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe folgenden Code
void send_TWI_8(unsigned char ucData)
{
  unsigned char ucCounter = 0;
  unsigned char ucTemp = 0;
  DDRD |=   (1 << DDD5); //Ausgang setzen
  /*while(ucCounter != 8)
  {
    ucTemp = ucData & 0x80;
    if(ucTemp > 0) SDA_1;
    if(ucTemp == 0) SDA_0;
    ucData = ucData << 1;
    clk_TWI();
    ucCounter++;
  }
  _delay_ms(50);*/
  DDRD &= ~( 1 << DDD5 ); //Eingang setzen
  //SCL_1;
  while(PIND & (1<<PIND5)); //Warten bis der Eingang auf Low ist
  _delay_ms(50);
  SCL_0;
}

So... nun das problem:

Wenn ich die Zeile zum Ausgang setzen oben entferne, wartet das programm 
bis der Eingang auf Low ist. Wenn die Zeile jedoch eingebaut ist, so 
klappt es nicht mehr. Das Programm rauscht einfach dur das While 
hindurch egal ob der Eingang auf 1 oder 0 ist.

Woran kann das liegen?

Danke schonmal

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

Bewertung
0 lesenswert
nicht lesenswert
Gib dem Pin mal nach der Umschaltung auf Eingang ein bischen Zeit auch 
den externen Zustand anzunehmen.

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde ich auch sagen, da die Leitung bestimmt noch eine kleine Kapazität 
aufweist.

Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klapt perfekt :) DANKE


:) :) :)

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.