-         

+ Antworten
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: wie programmiere ich einen Taster auf 2 befehle

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.01.2005
    Beiträge
    146

    wie programmiere ich einen Taster auf 2 befehle

    Anzeige

    ich möchte ein eingangs Taster so programmieren dass wenn ich einmal drücke ein befehl ausgeführt wird und wenn ich zwei mal schnell hintereinander drücke ein anderer Befehl ausgelst wird
    ¨
    Das ganze ist das ich mit nur einem taster ein motor steuern kann also links und rechts.


    schon mal danke für die tipps

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    14.04.2006
    Beiträge
    10
    Also ich bin zwar ein Newb was Programmierung angeht ,würde es aber mit einer Zählschleife versuchen. Quasi nach dem ersten Tastendruck an PORTX springt er in eine Zählschleife und warte eine Endliche Zeit auf den zweiten Tastendruck. Es brauch sich dabei ja nur um ne grobe Sekunde handeln.

    Einen Sourcecode hab ich dafür leider nicht...sorry . Wie schon gesagt..ich bin noch Noob


    Gruß

    Chris19

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2006
    Ort
    Stuttgart
    Alter
    37
    Beiträge
    321
    hört sich nicht schwer an. einfach nach dem ersten tastendruck timer losrennen lassen (für timer findet man quellcode irgendwo bestimmt) und vielleicht noch ne variable setzen. nach ablauf des timers einfach den befehl für 1x ausführen und wenn der taster gedrückt wird, aber die variable schon gesetzt ist, dann den 2x befehl ausführen.
    kannst du programmieren oder langt eine grobe beschreibung der funktion?

    EDIT: ups, is ja das Bascom forum... da kann ich garantiert nicht mit source dienen aber schau einfach mal nach, wie man nen timer setzt in bascom. der rest ist nur noch abfragen, ob der timer schon abgelaufen ist und taster abfrage.

    EDIT2:
    http://www.roboternetz.de/wissen/ind...scom_und_Timer
    ich denke, das einzig wichtige ist, dass das warten nicht den Programmablauf unterbricht, sonst wird ja auch der Taster nicht abgefragt während der Wartephase. Weiss nicht, ob man da mit interrupts was tolles machen sollte oder einfach ne Schleife ne gewisse Anzahl von Durchgängen durchlaufen, in der man dann immer den Taster überprüft und wenn er nochmal kam dann zum 2x-Befehl springt und wenn nicht halt hinter der Schleife dann den 1x-Befehl.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    19.03.2005
    Beiträge
    25
    @BiGFOOT

    Ist zwar OT aber weißt Du eigentlich was die 2 Schriftzeichen da bei Dir bedeuten?

    Grüße...

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.01.2005
    Beiträge
    146
    ich habe da mal ein code geschrieben aber irgend wie funktioniert er nicht richtig.


    Config Portc.2 = Output
    Config Portc.3 = Output
    Config Pinc.0 = Input
    Config Timer0 = Timer , Prescale = 8
    Portc.0 = 1



    Do
    If Pinc.0 = 0 Then
    Enable Timer0 : If Pinc.0 = 0 Then
    On Timer0 Licht
    Portc.3 = 1




    Loop
    End

    Licht:
    Portc.2 = 1

    Return

    weiss einner wie er richtig sein sollte

    danke

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2006
    Ort
    Stuttgart
    Alter
    37
    Beiträge
    321
    Zitat Zitat von spaceduck
    @BiGFOOT

    Ist zwar OT aber weißt Du eigentlich was die 2 Schriftzeichen da bei Dir bedeuten?

    Grüße...
    Klar, das ist Gaga (wie die Ente macht )
    Da Chinesen meistens als Spitzname bei sich einfach das 2. Zeichen verdoppeln, wurde, nachdem keiner meinen Namen aussprechen konnte, einfach gargar (2. Silbe meines Namens, R war schwer, also gaga)) genommen... Hab mich erst gewehrt weil gaga hier ein bissle nen komischen Beigeschmack hat aber jetzt bin ich aber stolz und zufrieden damit ;P Spaceducks machen wahrscheinlich auch 嘎嘎 wie ihre Artgenossen auf der Erde...

    EDIT: 你看懂了我的名字吧? (mein Chinesisch is nicht wirklich gut aber wenn ich paar Zeichen hab, dann hab ich zumindest mal im Wörterbuch nachgeschaut was sie bedeuten. Zum überleben in China langts grad...)

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    25.03.2005
    Beiträge
    10

    Benutze "waitms"

    In Bascom gibt es die Funktion "waitms", die den Programablauf für eine bestimmte Zeit in Millisekunden anhält. Also z. B. "Waitms 10" für eine Pause von einer Hundertstelsekunde.

    Ich würde nun den Port mit dem Taster abfragen. Falls dieser gedrückt ist, wird eine kurze Zeit gewartet und der Taster nochmals abgefragt. Jetzt kann je nach Ergebnis der gewünschte Befehl ausgeführt werden.

    Natürlich verschwendet der Prozessor so etwas Zeit, falls dies aber nicht stört finde ich das eine einfache Lösung.

    (Es bleibt noch zu sagen, dass die Funktion waitms kein hoch genaues Timing erlaubt, das ist aber völlig irrelevant in dieser Anwendung.)

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    19.03.2005
    Beiträge
    25
    @BiGFOOT,

    Hihi, find ich cool. Hätte jetzt echt nicht gedacht das Du chinesisch kannst.
    Können ja sicher die wenigsten hier. Die Bedeutung stimmt sogar!

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.01.2005
    Beiträge
    146
    danke für die antwort könnte mir jemand ein Beispiel proggen das ich es noch ganz verstehe währe echt nett


    danke

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2006
    Beiträge
    153
    Was für einen uc Hast du denn? ATxxxxxxx???

    MFG
    Mike

+ Antworten
Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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