mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik If Anweisung wird übersprungen


Autor: Philipp Horenz. (phil_phil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Freunde,

Hab momentan ein Problem wo ich nicht weiterkomme. Ich möchte durch 
einen Tastendruck (PORTD) meinen PIN0 an PORTB toggeln. Aber irgendwie 
klappts nich. Er überspringt immer die if Anweisung.

Wär schön, wenn mir einer weiterhelfen könnte.

Hier der Code:

while(1)
  {

DDRB=0xff;
PORTB=0xff;
DDRD=0x00;
PORTD=0x00;

  if (PORTD = 0x01) PORTB ^= (1<<PB0);
  }

Autor: Paul W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
'=' ist eine Zuweisung... du weist PORTD null zu und anschließend wird 
der Ausdruck überprüft (ob false oder true... gleich null oder ungleich 
null). Du willst vermutlich '==' und nicht '='.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PORTD ist immer 0x00.
Was du suchst ist PIN.

Ich empfehle dir das Tutorial durchzuarbeiten.

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wenn es wirklich eine Taste ist wird sie prellen und das Programm 
wird auch nicht wie gewünscht funktionieren ...

Autor: Philipp Horenz. (phil_phil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um das Prellen wollt ich mich anschließend kümmern. Aber ihr habt mir 
schonmal nen riesen Schritt weitergeholfen.

Der Code müsste folgendermaßen so aussehen richtig?

while(1)
  {

DDRB=0xff;
PORTB=0xff;
DDRD=0x00;


  if (PORTD == 0x01) PORTB ^= (1<<PB0);
  }

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn tatsächlich der PortAUSGANG untersucht werden soll, ja.
Wenn du den EINGANG abfragen willst, wäre - wie schon gesagt - PORTD == 
0x01 richtig.

Autor: C. H. (_ch_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MeinerEiner schrieb:
> Wenn tatsächlich der PortAUSGANG untersucht werden soll, ja.
> Wenn du den EINGANG abfragen willst, wäre - wie schon gesagt - PORTD ==
> 0x01 richtig.
wenn, dann schon richtig! if (PIND == 0x01)

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ARGHL... drecks Copy&Paste ... türlich PIND
Hab ja sogar nochmal hochgeblättert zur Zeile
> Was du suchst ist PIN.
und gedacht "jo, stimmt"

Autor: C. H. (_ch_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MeinerEiner schrieb:
> ARGHL... drecks Copy&Paste ... türlich PIND
> Hab ja sogar nochmal hochgeblättert zur Zeile
>> Was du suchst ist PIN.
> und gedacht "jo, stimmt"
take it easy ;)

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.