begriffserklärung

OP #345627
Lesenswert?
• ▲
▼
kann mir jemand ich kurzform bitte folgende sachen erklären:

1. Frage:
DDRC = (1 << DDC2) | (1 << DDC3)  // portc pin 2 und 3 als eingang
definieren
WIE DEFINIERE ICH DIE ALS AUSGANG (DDRC = (0 << DDC2) | (0 << DDC3))

2. Frage:
wie funktioniert eine while schleife


mfg helli
#345630
Lesenswert?
• ▲
▼
zu 1)
Nein. So geht das nicht.
Der springende Punkt ist, dass eine 1 an einer Bit-
position den entsprechenden Pin als Eingang beschaltet
und eine 0 dementsprechend als Ausgang. Alles was du nicht
explizit mit 1 setzt ist sowieso automatisch 0.
d.h. in
DDRC = (1 << DDC2) | (1 << DDC3)
wird das Bit #2 und Bit #3 auf 1 gesetzt. Alle anderen Bits
sind damit 0 -> #2 und #3 sind Eingang, alle anderen sind
Ausgang.

2)
da klinke ich mich jetzt aus. Das ist C Grundlagenwissen das
in jedem noch so schlechtem Lehrbuch enthalten ist.
Ohne dieses Wissen solltest du nicht versuchen einen µC zu
programmieren. Das kann nur schief gehen. Versuch deine ersten
Schritte in C besser auf einem PC. Da gibt es viel bessere
Möglichkeiten rauszufinden warum ein Programm nicht funktioniert
und du musst dich auch am Anfang nicht um die absoluten low-level
Dinge kümmern um die du bei einem µC nicht herumkommst.
Zur Erklärung: Deine Frage ist äquivalent zu:
  Ich möchte an meinem Motor dìe Kolberückzugsfeder wechseln. Wie
  rum muss ich meinen Schraubenzieher halten?
#345633
Lesenswert?
• ▲
▼
Also nochmal eine Zusammenfassung:
1. Eine "1" im DDRx bedeutet Ausgang, eine 0 bedeutet eingang. Daher
hast du das oben verdreht.
2. Eine while schleife wird so lange durchlaufen bis die Bedingung in
der Klammer nicht mehr erfüllt ist, oder sie durch ein "break;"
verlassen wird. Bsp:
1
a = 0;
2
b = 5;
3
while(a < b){
4
  a++;
5
}
Die Schleife wird also nach 5 Durchläufen beendet bzw. sie wird erst
gar nicht mehr "betreten".
Das könnte man auch so lösen:
1
a = 0;
2
b = 5;
3
while(1){
4
  a++;
5
  if(a == 4) break;
6
}
Natürlich machen diese Konstruke eher wenig sinn, bei sowas ist eine
For-Schleife angebrachter.

Antwort schreiben

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.

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.