🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    isPressed? wasPressed? What's the difference?

    Scheduled Pinned Locked Moved Micropython
    3 Posts 3 Posters 8.6k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D Offline
      dclaar
      last edited by

      My impression was that isPressed reads the immediate state of the button, but wasPressedindicates that the button was pressed at some point. But trying it out, that doesn't seem to be the case:

      for count in range(10000):
        wait_ms(1)
      label0.setText(str(btnA.wasPressed()))
      

      Displays False, as does putting isPressed() in there, no matter how many times I press the button.

      So, what is the difference?

      J 1 Reply Last reply Reply Quote 0
      • ajb2k3A Offline
        ajb2k3
        last edited by

        Ispressed is used to preform an action when a button is pressed.
        Waspressed is used when you want an action dependent on how long the button was held down for.

        Ispressed is a command block and requires other blocks and commands for use whereas,
        Waspressed is a loop function that is used to control other blocks/commands.

        UIFlow, so easy an adult can learn it!
        If I don't know it, be patient!
        I've ether not learned it or am too drunk to remember it!
        Author of the WIP UIFlow Handbook!
        M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

        1 Reply Last reply Reply Quote 0
        • J Offline
          jhfoo @dclaar
          last edited by

          @dclaar isPressed() reflects current state of the button (is it pressed?), and returns a Boolean. wasPressed() is an event trigger you use to execute code when the button is pressed.

          Sample code below (generated from uiflow) to illustrate.

          from m5stack import *
          from m5ui import *
          from uiflow import *
          lcd.setRotation(1)
          
          setScreenColor(0x111111)
          
          isExit = None
          
          def buttonB_wasPressed():
            global isExit
            isExit = True
            pass
          btnB.wasPressed(buttonB_wasPressed)
          
          setScreenColor(0x000000)
          axp.setLcdBrightness(40)
          isExit = False
          while isExit == False:
            lcd.print((btnA.isPressed()), 3, 0, 0xffffff)
          
          
          1 Reply Last reply Reply Quote 0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          • First post
            Last post