AVR // Arduino UNO // Code macht nicht das, was er soll

OP #6252472
Liebe µC begeisterten,

Ich habe mir vor kurzem einen Arduino UNO gekauft, mit der Intention, 
Die Programmiersprache C mit spaß/praxis bezogen zu erlernen.
Entsprechend bin ich relativ neu in der Thematik.
Jedenfalls habe ich nun die ersten Codes geschrieben, welche auch 
funktionieren, bis ich nun zum Punkt gekommen bin einen Code zu 
schreiben, welcher je nach dem ob an PIND 0x10 High oder Low anliegt, 
jeweils die
PINS auf PORTD entweder auf 0x0F oder 0x00 legt.
Nun zum Problem.
die IF-bedingung funktioniert nur teilweise.
Wenn ich an PIND 0x10 ein HIGH "auslöse" kommt es dazu, dass die 
Ausgänge
0b00001111 auf High gehen (also wie ich es will). Lege ich jedoch den 
Pin auf LOW Pegel, so reagiert mein µC (Atmega328P-PU) nur mit einer 
gefühlten Wahrscheinlichkeit von 50%, also gefühlt abhängig von der 
Laune des µC.
Hier zu meinem Code:


int main(void)
{
  DDRD = 0x0F;
  PORTD = 0x00;

    while (1)
    {
    if(PIND & 0x10)
    {
      PORTD |= 0x0F;
    }
    else
    {
      PORTD |= 0x00;
    }
    }
}



/* Liegt dies nun an meinem Code? oder kann das auch andere Ursachen 
haben?
bin wie gesagt neu in dem Gebiet und würde mich über nette antworten 
sehr sehr freuen, da das aktuell mein Projekt einwenig zum erliegen 
bringt. */
Gast
Chris N. schrieb:
> Lege ich jedoch den
> Pin auf LOW Pegel, so reagiert mein µC (Atmega328P-PU) nur mit einer
> gefühlten Wahrscheinlichkeit von 50%, also gefühlt abhängig von der
> Laune des µC.

Das ist ein bisschen erstaunlich. Soweit ich das übersehe, dürfte er auf 
LOW gar nicht reagieren, wenn vorher mal HIGH anlag.
OP
> Das ist ein bisschen erstaunlich. Soweit ich das übersehe, dürfte er auf
> LOW gar nicht reagieren, wenn vorher mal HIGH anlag.

Jetzt im Nachhinein, wo ich meinen Fehler sehe, finde ich es auch 
erstaunlich. Vielleicht hat mein Code den µC dermaßen verwirrt, dass er 
einfach nach Lust und Laune gehandelt hat :D.
Vielen Dank für eure schnellen Antwroten!!
Es funktioniert jetzt, wie ich es wollte!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.