-
-
Moderator
Robotik Visionär
Hallo
Nahe dran, aber noch nicht perfekt.
Mit #define definierte Wörter werden im weiteren Programm durch den Text ersetzt, den man definiert hat. Ein
#define Lampe_rot StatusLED(RED)
ersetzt alle Stellen im Programm die Lampe_rot heisen mit dem Text StatusLED(RED) (bisschen banal vielleicht) Das verwendet man um sich Tipparbeit zu ersparen und/oder um ein Programm verständlicher/unverständlicher zu gestalten.
Zum deinem aktuellen Programm:
keine_Taste muss natürlich keine_taste heisen, weil es so auch im #define steht. Alles in c ist case-sensitiv, das bedeutet, Groß- und kleinschreibung wird unterschieden. Ausserdem möchtest du doch prüfen, ob eine Taste gedrückt ist. Also sollte die Abfrage if taste... heisen. Die Klammern könntest du weglassen, denn die sind im #define schon dabei.
Die Zeiten der Sleep()s sind zu kurz! Sleep(36) entspricht ca. 1 Millisekunde (soweit ich weis und nur, wenn du eine der neueren asuro.c verwendest.) Also würden 3 Sleep(250) ungefähr 750/36 ms verzögern. Das sind quasi 0,02 unmerkliche Sekunden.
for (zeit=0; zeit<1000; zeit++) { Sleep(36); }
würde dann eine Sekunde verzögern. Alternativ kennen die neueren Libaries auch die Msleep()-Funktion. Hier kann die Zeit direkt in Millisek. angegeben werden:
Msleep(1000);
wartet dann auch eine Sekunde lang.
Ob if oder while, viele Wege führen zum Ziel.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen