- 3D-Druck Einstieg und Tipps         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 27 von 27

Thema: Tasterauswertung

  1. #21
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Anzeige

    Praxistest und DIY Projekte
    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:

    Code:
    #include "asuro.h"
    
    int main(void)
    ...
    Das musste aber Kompilier-fehler oder Warnungen gegeben haben wen es nicht drin war.

  2. #22
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2010
    Beiträge
    9
    jetzt hab ich des hinbekommen.
    aber warum muss die Implementierung von Taster in die While-Schleife?
    dann muss ich ja jedesmal neu implementieren!

  3. #23
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    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.

  4. #24
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2010
    Beiträge
    9
    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!

  5. #25
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    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)

  6. #26
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    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.

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2010
    Beiträge
    9
    Fettes Danke!!!
    läuft alles super

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test