- Labornetzteil AliExpress         
Ergebnis 1 bis 7 von 7

Thema: tastendruck ein, beim nächsten druck wieder aus?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2006
    Beiträge
    25

    tastendruck ein, beim nächsten druck wieder aus?

    Anzeige

    Praxistest und DIY Projekte
    nabend alle zusammen,
    mir ist grad ein kleines problem untergekommen, ich möchte mit einem taster ein port auf 1 setzen und mit dem gleichen taster den port beim erneuten drücken auf 0 setzten, kann mir jemand helfen oder evt nen link hir im forum geben, ich hab mich hier grad totgesucht, irgendwie geb ich wohl die falschen stichwörter ein oder so
    schonmal danke im vorraus.

    gruss, bigeggmc

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    if pin... then toggle port...

    mit toggle wird einfach der momentane zustand umgekehrt... us 1 wird 0 und aus 0 wird 1... das prellen des tasters musst du aber noch berücksichtigen sonst wird bei einem tastendruck gleich mehrmals getogglet....

    gruss bluesmash

  3. #3
    zur vervollständigung: das entprellen löst man meistens mit einem "waitms XXX", ich würd sagen das je nach taster ein wert von 40-100 reichen sollte.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2006
    Beiträge
    25
    hab da 80 ms genommen, das funzt ganz gut, danke für die schnelle hilfe um diese zeit
    hatte das sonst halt über nen zentralen austaster gemacht, aber ich wollte den behalten und trotzdem noch jeden einzelnen port wieder abschalten können, oder eben zentral alle zusammen auf 0

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2006
    Beiträge
    25
    sorry für den doppelpost, aber wie kann ich toggle einsetzen um z.b. ein lauflichtprog mit der taste zu starten und mit eben dieser auch wieder zu beenden? irgendwie funzt das mit den ports wunderbar, nur mit dem lauflicht ned

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    dazu würde ich einfach ein bit toggeln, welches dan das lauftlicht ein und ausschaltet...

    pseudo basic code:

    dim bit1 as bit

    if pin... then toggle bit1

    if bit1=1 then

    hier den code für das lauflicht

    end if


    hoffe das hilft dir weiter...
    gruss bluesmash

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Ich hab solche Sachen bislang immer mit den Befehlen "Debounce" und "Not" erledigen lassen.
    Sinngemäß hab ich also per Debounce den Taster entprellen lassen und dann in die folgende Routine das hier geschrieben:

    Portx.y = not Portx.y

    Toggle verursacht (glaub ich) etwas mehr Code und braucht mehr Rechenzyklen um ausgeführt zu werden. Müsste man mal im Simulator austesten.
    Nutzt man "Config Debounce" nicht so setzt der Compiler die Entprellzeit auf 25ms fest.

    Um ein Lauflicht zu starten kannste in der Routine die nach dem Betätigen des Tasters folgen soll einen Timer starten der das Programm ablaufen lässt oder sonst welche anderen Bits setzen/zurücksetzen die dem µC verklickern das Du jetzt in Diskostimmung bist

Berechtigungen

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

LiFePO4 Speicher Test