Reiko Randoja
/
ut_bbr_2018
Firmware for UT Robotex 2018 basketball robot
QED/qed.cpp@4:81cb68f1bcbd, 2019-11-11 (annotated)
- Committer:
- Reiko
- Date:
- Mon Nov 11 19:19:43 2019 +0000
- Revision:
- 4:81cb68f1bcbd
- Parent:
- 0:ef6268629f0b
Change default thrower (motor 3) pulsewidth_us from 800 to 100
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Reiko | 0:ef6268629f0b | 1 | #include "qed.h" |
Reiko | 0:ef6268629f0b | 2 | |
Reiko | 0:ef6268629f0b | 3 | QED::QED(PinName channelA, PinName channelB) |
Reiko | 0:ef6268629f0b | 4 | : interruptA(channelA), interruptB(channelB) { |
Reiko | 0:ef6268629f0b | 5 | |
Reiko | 0:ef6268629f0b | 6 | pulses = 0; |
Reiko | 0:ef6268629f0b | 7 | currState = (interruptA.read() << 1) | (interruptB.read()); |
Reiko | 0:ef6268629f0b | 8 | prevState = currState; |
Reiko | 0:ef6268629f0b | 9 | |
Reiko | 0:ef6268629f0b | 10 | interruptA.rise(this, &QED::decode); |
Reiko | 0:ef6268629f0b | 11 | interruptA.fall(this, &QED::decode); |
Reiko | 0:ef6268629f0b | 12 | interruptB.rise(this, &QED::decode); |
Reiko | 0:ef6268629f0b | 13 | interruptB.fall(this, &QED::decode); |
Reiko | 0:ef6268629f0b | 14 | } |
Reiko | 0:ef6268629f0b | 15 | |
Reiko | 0:ef6268629f0b | 16 | int QED::read() { |
Reiko | 0:ef6268629f0b | 17 | int pulseCount = pulses; |
Reiko | 0:ef6268629f0b | 18 | pulses = 0; |
Reiko | 0:ef6268629f0b | 19 | return pulseCount; |
Reiko | 0:ef6268629f0b | 20 | } |
Reiko | 0:ef6268629f0b | 21 | |
Reiko | 0:ef6268629f0b | 22 | void QED::decode() { |
Reiko | 0:ef6268629f0b | 23 | currState = (interruptA.read() << 1) | (interruptB.read()); |
Reiko | 0:ef6268629f0b | 24 | |
Reiko | 0:ef6268629f0b | 25 | int change = (prevState & PREV_MASK) ^ ((currState & CURR_MASK) >> 1); |
Reiko | 0:ef6268629f0b | 26 | |
Reiko | 0:ef6268629f0b | 27 | if (change == 0) { |
Reiko | 0:ef6268629f0b | 28 | change = -1; |
Reiko | 0:ef6268629f0b | 29 | } |
Reiko | 0:ef6268629f0b | 30 | |
Reiko | 0:ef6268629f0b | 31 | pulses -= change; |
Reiko | 0:ef6268629f0b | 32 | prevState = currState; |
Reiko | 0:ef6268629f0b | 33 | } |