Taster
1 Infos Pull-Up-Widerstand
Schaltkreis mit Pull-Up-Widerstand

Die Abfrage von Tastern ist etwas komplizierter. Sie beginnt mit einer elektronischen Schaltung:
Ist der Schalter geöffnet, liegt an dem hochohmigen Eingang 3,3 V an, da durch die Widerstände kein Strom fließt und somit keine Spannung abfällt.

Wird der Schalter geschlossen, liegt an dem Eingang 0 V an, am oberen Widerstand fallen 3,3 V an. Am Schutzwiderstand fällt keine Spannung ab, da durch ihn kein Strom fließt.

Sollte der Pin B7 als Ausgang deklariert werden, kann auch mit geschlossenem Schalter kein Kurzschluss hergestellt werden, da der Schutzwiderstand dies verhindert.

Der entscheidende Vorteil der Schaltung liegt darin, dass es keinen Schwebezustand am Ein­gangs­pin B7 gibt. Es liegt immer ein eindeutiger Wert an, auch wenn der Taster gerade betätigt wird.

2 Entscheidungen in C
Struktogramm Entscheidung

Eine Entscheidung beginnt mit der Prüfung einer Bedingung. Falls die Bedingung erfüllt ist, wird der ja-Zweig abgearbeitet, falls nicht der nein-Zweig.

In der Programmiersprache C wird dies folgendermaßen programmiert:
if(S0 = = 0)
{ L1 = 1;
}
else
{ L1 = 0;
}

Hinweis: Option 2 muss es nicht geben.

3 Vergleichs­operatoren

  < kleiner als
  > größer als

 <= kleiner gleich
 >= größer gleich

 != ungleich
 == genau gleich

Zur Formulierung von Vergleichen benötigt man Vergleichsoperatoren. Das Ergebnis eines Vergleichs (z.B. x > y) lautet entweder ja oder nein, bzw. wahr (true) oder falsch (false). Intern stellt C den Wahrheitswert falsch durch 0 dar und den Wahrheitswert richtig durch 1. Aber auch alle anderen Zahlen die ungleich 0 sind werden als richtig interpretiert. Alle möglichen Vergleichs­operatoren werden in der Grafik gezeigt.

Wichtig: Verwechsele den Vergleichsoperator == nicht mit der Zuweisung =.

Bedingung: S0 == 0

Zuweisung: L1 = 1

4 Logische Operatoren

  ! nicht

 && und

 || oder

Logische Operatoren können mehrere Vergleiche miteinander verknüpfen.
Beispiel: „Wenn SR und SL gleichzeitig betätigt werden, leuchten LED L1 und L2.“

if(SR == 0 && SL == 0) L1=L2=1;

Dabei hat der nicht-Operator den höchsten Vorrang, gefolgt von dem und-Operator. Der oder-Operator hat den niedrigsten Vorrang. Falls eine andere Gewichtung gewünscht ist kann man dies durch Klammersetzung erreichen.

5 Variablen und Datentypen
Datentyp Größe Wertebereich
unsigned char 1 Byte 0 ... 255
char 1 Byte -127 ... 127
unsigned int 2 Byte 0 ... 65535
int 2 Byte -32768 ...
float 4 Byte -2.2E9 ...
double 8 Byte -9.2E18 ...

Eine Variable speichert einen veränderbaren Wert. Der Datentyp der Variable legt die max. Größe fest.

Man beachte: der Datentyp float und double speichert Gleitkommazahlen.

Bei der Deklaration wird für die Variable ein Speicherplatz reserviert: int x;
Dabei ist int der Datentyp und x der Name der Variable.

Bei der Initialisierung wird der Variable ein Startwert zugewiesen: x = 1;

Hinweis: Deklaration und Initialisierung kann auch in einem Schritt erfolgen: int x = 1;

Beispiel für eine Entscheidung mit Variable:
int x = 1;
 if(x <= 1) L1 = 1;



Aufgabe 1 Tastenabfrage - Die LED L1 leuchtet beim Betätigen von S0.

Taster
  1. Erstelle das Projekt 02 Tastenabfrage und schreibe die C-Datei 02-Tastenabfrage-1.c. Beim Betätigen von S0 soll die LED L1 leuchten. Hinweis: Alles was zyklisch wiederholt werden soll, gehört in die while(1)-Schleife.
  2. Schreibe die Datei 02-Tastenabfrage-2.c: L1 leuchtet bei S0, L2 bei SU u.s.w.
  3. Teste andere Vergleichsoperatoren.
  4. Teste die Potis als Schalter. Hinweis: R1 und R2 als digitale Eingänge deklarieren.
  5. Erweiter dass Programm so, dass beim gleichzeitigen Drücken von S0 und SU die LEDs L1 und L2 leuchten. Verwende hierfür eine weitere Entscheidung innerhalb der ersten Entscheidung. Welche Änderung beobachtest du?
Quelltext



Aufgabe 2 Logische Verknüpfungen

logische Operatoren

In dieser Aufgabe wird das Arbeiten mit logischen Verknüpfungen trainiert.

  1. Schreibe die C-Datei 02-Tastenabfrage-3.c. Dabei sollen beim gleichzeitigen Betätigen von S0 und SU sechs LEDs aufleuchten.
  2. Schreibe die C-Datei 02-Tastenabfrage-4.c. Beim gleichzeitigen Betätigen von S0 und SU sollen wie bisher sechs LEDs aufleuchten. Weiterhin soll L1 bei S0 leuchten, L2 bei SU u.s.w.
  3. Für Profis : Beim Betätigen einer beliebigen Taste soll L1 leuchten, beim Betätigen von zwei Tasten L1 und L2 und beim Betätigen von drei Tasten L1, L2 und L3.

Entspann dich erst mal ...

Ein Informatiker und seine Frau sitzen beim Frühstück: Sie: "Du Mausi, wir haben kein Brot mehr. Könntest du bitte zum Bäcker gehen und eins holen? Und falls sie Eier haben, bring 10 Stück mit."

Als er wieder zurück kommt hat er 10 Brote dabei. Sagt sie: "Warum nur hast du 10 Brote gekauft?" Er: "Sie hatten Eier."

Aufgabe 3 Bedingungen mit Variablen

Bedingungen mit Variablen

Variablen werden sehr häufig in Bedingungen verwendet: Finde alle Aussagen herraus die wahr sind.

Hinweis: Der Compiler wertet alle Zahlen ungleich Null als eine logische 1!

Zudem können die Ausdrücke mit dem Mikrocontroller verifiziert werden, indem bei einem wahren Ausdruck eine LED leuchtet.


© mylime.info