The iPod controller that I submitted for the mbed challenge

Dependencies:   mbed Motordriver PID

Committer:
networker
Date:
Wed May 04 15:41:13 2011 +0000
Revision:
0:371773dd3dd1
first publication

Who changed what in which revision?

UserRevisionLine numberNew 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