The iPod controller that I submitted for the mbed challenge
Dependencies: mbed Motordriver PID
user_interface/buzzer.h@0:371773dd3dd1, 2011-05-04 (annotated)
- Committer:
- networker
- Date:
- Wed May 04 15:41:13 2011 +0000
- Revision:
- 0:371773dd3dd1
first publication
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
networker | 0:371773dd3dd1 | 1 | #ifndef BUZZER_H |
networker | 0:371773dd3dd1 | 2 | #define BUZZER_H |
networker | 0:371773dd3dd1 | 3 | #include "MCP23017.h" |
networker | 0:371773dd3dd1 | 4 | |
networker | 0:371773dd3dd1 | 5 | class buzzer { |
networker | 0:371773dd3dd1 | 6 | MCP23017& _intf; |
networker | 0:371773dd3dd1 | 7 | Timeout t; |
networker | 0:371773dd3dd1 | 8 | void stop() { |
networker | 0:371773dd3dd1 | 9 | char tmp = _intf.read(PORT_B); |
networker | 0:371773dd3dd1 | 10 | tmp &= ~BUZZ; |
networker | 0:371773dd3dd1 | 11 | _intf.write(PORT_B, tmp); |
networker | 0:371773dd3dd1 | 12 | } |
networker | 0:371773dd3dd1 | 13 | public: |
networker | 0:371773dd3dd1 | 14 | buzzer(MCP23017& intf): _intf(intf) { |
networker | 0:371773dd3dd1 | 15 | intf.direction(PORT_B, INPUTS);// rot enc input |
networker | 0:371773dd3dd1 | 16 | intf.configurePullUps(PORT_B, INPUTS); |
networker | 0:371773dd3dd1 | 17 | } |
networker | 0:371773dd3dd1 | 18 | ~buzzer() { |
networker | 0:371773dd3dd1 | 19 | t.detach(); |
networker | 0:371773dd3dd1 | 20 | stop(); |
networker | 0:371773dd3dd1 | 21 | } |
networker | 0:371773dd3dd1 | 22 | void buzz(int ms) { |
networker | 0:371773dd3dd1 | 23 | char tmp = _intf.read(PORT_B); |
networker | 0:371773dd3dd1 | 24 | tmp |= BUZZ; |
networker | 0:371773dd3dd1 | 25 | _intf.write(PORT_B, tmp); |
networker | 0:371773dd3dd1 | 26 | t.attach_us(this, &buzzer::stop, ms*1000); |
networker | 0:371773dd3dd1 | 27 | } |
networker | 0:371773dd3dd1 | 28 | }; |
networker | 0:371773dd3dd1 | 29 | #endif |