Εμφάνιση αποτελεσμάτων : 1 έως 6 από 6

Θέμα: Σκέψεις για debounce με CLICK και HOLD

  1. #1
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή Σκέψεις για debounce με CLICK και HOLD

    Θα ήθελα τι γνώμη σας για τεχνική debounce.
    Μέχρι στιγμής έχω υλοποιήσει ένα matrix keypad , που το σκανάρω κάθε 100ms και επιστρέφω απο έναν πίνακα το κουμπί που πατήθηκε.

    Θέλω να υλοποιήσω hold στα κουμπιά και μέχρι στιγμής σκέφτηκα να επιστρέφω μία άλλη τιμή όταν δεν κάνεις release και να γεμίζει ένα buffer.
    Μετά να ελέγχω το buffer για συνεχή πατήματα , αν δει το ίδιο κουμπί 10 φορές έχουμε 10*100ms=1sec hold.

    To debounce σκέφτομαι να το υλοποιήσω με counter up, και counter down για το release σε συνδυασμό με break αν ξεπεραστούν κάποια όρια για να μην μείνει μέσα στα while για πάντα,
    σαν σκεπτικό είναι σωστό?

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη picdev : 25-04-15 στις 13:02

  2. #2
    Μέλος Το avatar του χρήστη gsouf
    Όνομα
    Γιώργος
    Εγγραφή
    Mar 2010
    Περιοχή
    Α.Πατησια
    Μηνύματα
    487

    Προεπιλογή

    Σωστό φάινεται αλλά πολύ κώδικας μου φαίνεται γιατί να μη ξεκινάς τον counter με το πάτημα και μετά με σύγκριση μπείς στον ανάλογο βρόγχο?

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη VaGyver
    Όνομα
    Βαγγέλης
    Εγγραφή
    Mar 2009
    Περιοχή
    Πειραιάς
    Μηνύματα
    93

    Προεπιλογή

    Εχεις σκεφτει να χρησιμοποιησεις και interrupts? Εννοω. Και timer και on change.

    0 Not allowed! Not allowed!

  4. #4
    Μέλος
    Εγγραφή
    Apr 2006
    Περιοχή
    Κέρκυρα
    Μηνύματα
    5.956

    Προεπιλογή

    αν το scanning γίνεται κάθε 100ms τότε δε νομίζω οτι να χρειάζεται debounce

    κατά τα άλλα αν πρόκειται να χρειαστεί να μπει debounce (πχ έλεγχος πλήκτρων κάθε 5msec) όταν βρει ένα πλήκτρο πατημενο το καταχωρεί ως πατημένο (πχ καταχωρητής Πατημα) και φορτώνει πχ έναν άλλο καταχωρητή μία τιμή πχ το 5. αν την επόμενη φορά δεν το βρεί πατημένο μειώνει την τιμή αυτή και κάθε φορά που το ξαναβρισκει όχι πατημένο το ξαναμειώνει ώσπου να φτάσει στο μηδέν και το θεωρήσει οτι απελευθερώθηκε... αν όμως πριν φτάσει στο 0 το βρεί πάλι μία φορά να μην είναι πατημένο τότε ξαναγράφει στον καταχωρητη το 5....

    φυσικά θα μπορούσε να είναι ένας ο καταχωρήτής και πατημένο να είναι όταν η τιμή είναι μεγαλύτερη από το μηδέν

    1 Not allowed! Not allowed!

  5. #5
    Μέλος Το avatar του χρήστη VaGyver
    Όνομα
    Βαγγέλης
    Εγγραφή
    Mar 2009
    Περιοχή
    Πειραιάς
    Μηνύματα
    93

    Προεπιλογή

    Εαν το κύκλωμα σου δεν είναι time critical ρίξε μια ματιά και εδώ μήπως πάρεις καμιά ιδέα.
    http://www.pcbheaven.com/picpages/A_Clever_Button/

    Ο τύπος με ένα μπουτόν έχει τρεις καταστάσεις:
    Απλό πάτημα, παρατεταμένο πάτημα (hold δηλαδή, που κρατάει πάνω από 800 msec) και επίσης διπλό κλικ. Δες και το video.

    0 Not allowed! Not allowed!

  6. #6
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    chip ωραία η ιδέα σου αλλά προσπαθώ να κάνω και τον κώδικα μαζεμένος και κάθε λειτουργία διακριτή για να είναι εύκολος στη συντήρηση.
    Δεν θέλω να φάω και 800msec για τέτοια λειτουργία γιατί έχω και άλλα πράγματα να κάνω, σε λίγο θα αρχίσω τις δοκιμές

    0 Not allowed! Not allowed!

Παρόμοια Θέματα

  1. Σκέψεις (και απορίες) για φώτα κήπου
    By Ninetie in forum Ηλεκτρολογικά
    Απαντήσεις: 28
    Τελευταίο Μήνυμα: 01-10-14, 00:07
  2. Ενισχητής μιικροφώνου απορίες και σκέψεις
    By passer07 in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 08-12-13, 16:02
  3. Σκέψεις για αποκωδικοποιητές SD-HD
    By weather1967 in forum Επίγεια & Δορυφορική Λήψη
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 26-07-12, 14:28
  4. debounce σε ff
    By jakektm in forum Ερωτήσεις Θεωρίας
    Απαντήσεις: 3
    Τελευταίο Μήνυμα: 06-06-08, 23:47

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας