• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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],
47 head:{
48   text:'Button Debouncing Scenarios',
49 },
50}
51