1
0

button-debouncing-wave-diagram.txt 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # Source for the button debouncing wave diagram
  2. # Paste into http://wavedrom.com/editor.html
  3. {signal: [
  4. {name:'current mode', wave: '3............', data: ['normal button press and release']},
  5. {name:'physical button', wave: '01......0....'},
  6. {name:'application ', wave: '01......0....'},
  7. {},
  8. ['bounce mode',
  9. {name:'current mode', wave: '4............', data: ['debounced button press']},
  10. {name:'physical button', wave: '0101...0.....'},
  11. {name: 'timeouts', wave: '01...0.1...0.'},
  12. {name:'application ', wave: '01.....0.....'},
  13. {},
  14. {name:'current mode', wave: '4............', data: ['debounced button release']},
  15. {name:'physical button', wave: '1...010......'},
  16. {name: 'timeouts', wave: '0...1...0....'},
  17. {name:'application ', wave: '1...0........'},
  18. {},
  19. {name:'current mode', wave: '5............', data: ['delayed button press']},
  20. {name:'physical button', wave: '1...01.......'},
  21. {name: 'timeouts', wave: '0...1...0....'},
  22. {name:'application ', wave: '1...0...1....'},
  23. {},
  24. {name:'current mode', wave: '5............', data: ['delayed button release']},
  25. {name:'physical button', wave: '0...10.......'},
  26. {name: 'timeouts', wave: '0...1...0....'},
  27. {name:'application ', wave: '0...1...0....'},
  28. ],
  29. {},
  30. ['spurious mode',
  31. {name:'current mode', wave: '3............', data: ['first spurious button release ']},
  32. {name:'physical button', wave: '1.......01...'},
  33. {name:'application ', wave: '1.......01...'},
  34. {},
  35. {name:'current mode', wave: '3............', data: ['later spurious button release ']},
  36. {name:'physical button', wave: '1....01......'},
  37. {name: 'timeouts', wave: '0....1..0....'},
  38. {name:'application ', wave: '1............'},
  39. {},
  40. {name:'current mode', wave: '3............', data: ['delayed release in spurious mode ']},
  41. {name:'physical button', wave: '1....0.......'},
  42. {name: 'timeouts', wave: '0....1..0....'},
  43. {name:'application ', wave: '1.......0....'}
  44. ],
  45. ],
  46. head:{
  47. text:'Button Debouncing Scenarios',
  48. },
  49. }