jetzt hab ich des hinbekommen.
aber warum muss die Implementierung von Taster in die While-Schleife?
dann muss ich ja jedesmal neu implementieren!
Bist du sicher das eine neue Hex-datei erzeugt ist? Manchmal vergessen anfänger den Datei zu speichern. Auserdem ist noch etwas vergessen am obene ende das Program:
Das musste aber Kompilier-fehler oder Warnungen gegeben haben wen es nicht drin war.Code:#include "asuro.h" int main(void) ...
jetzt hab ich des hinbekommen.
aber warum muss die Implementierung von Taster in die While-Schleife?
dann muss ich ja jedesmal neu implementieren!
Ich verstehe nicht was du mit "jedesmal neu implementieren" bedeutet.
http://de.wikipedia.org/wiki/Implementierung
Meinst du vielleicht "eindrücken" der Tastern? Jedenfalls, den messung dauert nur eine Fraktion von einer Sekunde. Nach dem Entscheidung ob etwas eingedrückt ist muss er es wieder abfragen. Dazu benötigt es eine neue Messung mit PollSwitch. Weil ein bisschen später kannst du den Taster wirklich eingedrückt haben. Dein Programm wartet nicht bis einer Taster eingedrückt is. Es fühlt immer ob es schon passiert ist. Das heißt Polling:
http://de.wikipedia.org/wiki/Polling_(Informatik)
Mit keiner Taster eingedrückt gibt PollSwitch die wert 0 zurück. Und dann geht es weiter innerhalb deine while schleife.
okay, nun folgendes Problem...
mein code...
if(taster == 32)
{
StatusLED(RED);
continue;
}
if(taster == 16)
{
StatusLED(RED);
continue;
}
if(taster ==
{
MotorDir(FWD,FWD);
MotorSpeed(120,120);
continue;
}
if(taster == 4)
{
StatusLED(RED);
continue;
}
if(taster == 2)
{
StatusLED(RED);
continue;
}
if(taster == 1)
{
StatusLED(RED);
continue;
}
Warum läuft sofort der Motor?
Taste 1 und 2 lassen die LED jeweils rot leuchten, bei den anderen tastern 4-6 geht dann nichts mehr!
Gerade wo du den MotorBefehl gescrieben hat, steht nun ein Smiley. Bitte setzt dein code zwischen:
[code]deine code hier zwischen[ /code]
(nur den leerzeichen weglassen)
Wieso den Motoren gleich anfangen zu laufen verstehe ich auch nicht. Aber den Ursache könnte versteckt sein in den Code die du weggelassen hast.
Die Motoren generieren oft störungen zu dem analoge Messeinrichtung wan sie drehen. Dadurch macht Asuro oft eine falsche Konklusion uber die Tastern. Das passiert oftes mit den kleine Taster-werten, zbs. K6 und K5. Den einfachste Lösung ist 2 mal oder mehr Pollswitch auf zu rufen (weil die Störung meistens rausch ist, und nicht konstant) und den (beiden) werten zu speichern in einer variabele. Dan testen ob sie gleich an einander sein mit ein if-abfrage. Wenn das ist, hat es geklapt und geht er and die arbeit. Wenn es nicht gleich ist, muss er weiter gehen oder neu die Schleife durchgehen. Such mal in das Forum nach PollSwitch. Es gibt schon eine unzahlbare menge von Beispielen dafür.
Fettes Danke!!!
läuft alles super
Lesezeichen