DoubleCoilGun

Dependents:   Telliskivi2_2014

Fork of CoilGun by Reiko Randoja

coilgun.cpp

Committer:
Reiko
Date:
2013-09-14
Revision:
2:781ea1999ad3
Parent:
1:aa39e3a9d06f
Child:
3:7273ba733560

File content as of revision 2:781ea1999ad3:

#include "coilgun.h"

CoilGun::CoilGun(PinName chargePinName, PinName kickPinName, PinName donePin)
    : chargePin(chargePinName), kickPin(kickPinName), done(donePin) {
    done.fall(this, &CoilGun::doneCallback);
}

void CoilGun::kick(unsigned int length) {
    chargePin = 0; 
    kickPin = 0;
    Timeout kickFinish;
    kickFinish.attach_us(this, &CoilGun::kickEnd, length);
}

void CoilGun::kickEnd(void) {
    chargePin = 1; 
    kickPin = 1;
}

void CoilGun::setCharge(bool chargeState) {
    kickPin = 1;
    if (chargeState) {
        chargePin = 1;
    } else {
        chargePin = 0;
    }    
}

void CoilGun::discharge() {
    chargePin = 0;
    kickPin = 0;
}

void CoilGun::doneCallback(void) {
    chargePin = 0;
}