123
Fork of LG by
DeviceCounters.c@167:bedc0a9d559a, 2016-06-05 (annotated)
- Committer:
- Diletant
- Date:
- Sun Jun 05 11:03:33 2016 +0000
- Revision:
- 167:bedc0a9d559a
- Parent:
- 156:e68ee0bcdcda
- Child:
- 173:7f938afb0447
Device & ... update. Not final!!!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Diletant | 156:e68ee0bcdcda | 1 | #include "Device.h" |
Diletant | 156:e68ee0bcdcda | 2 | extern Device device; |
Diletant | 156:e68ee0bcdcda | 3 | |
Diletant | 167:bedc0a9d559a | 4 | void InitCountersDefaultSettings(void){ |
Diletant | 156:e68ee0bcdcda | 5 | for (uint8_t i = 0; i < 32; i++) device.counters.state.delta[i] = 0; |
Diletant | 156:e68ee0bcdcda | 6 | device.counters.state.angle = 0; |
Diletant | 156:e68ee0bcdcda | 7 | device.counters.state.amplitude = 0; |
Diletant | 156:e68ee0bcdcda | 8 | device.counters.state.frequency = 0; |
Diletant | 156:e68ee0bcdcda | 9 | } |
Diletant | 156:e68ee0bcdcda | 10 | |
Diletant | 167:bedc0a9d559a | 11 | void InitCountersState(void){ |
Diletant | 167:bedc0a9d559a | 12 | } |
Diletant | 167:bedc0a9d559a | 13 | |
Diletant | 167:bedc0a9d559a | 14 | void DeviceStartCounters(void){ |
Diletant | 156:e68ee0bcdcda | 15 | } |
Diletant | 156:e68ee0bcdcda | 16 | |
Diletant | 156:e68ee0bcdcda | 17 | void DeviceCount(void){ |
Diletant | 156:e68ee0bcdcda | 18 | int32_t delta = device.controller.QEI.state.delta; |
Diletant | 156:e68ee0bcdcda | 19 | |
Diletant | 156:e68ee0bcdcda | 20 | device.counters.state.angle -= device.counters.state.delta[(device.measurement.counter-31) & 0xff]; |
Diletant | 156:e68ee0bcdcda | 21 | device.counters.state.angle += delta; |
Diletant | 156:e68ee0bcdcda | 22 | |
Diletant | 156:e68ee0bcdcda | 23 | device.counters.state.displacement += device.counters.state.delta[(device.measurement.counter-31) & 0xff]; |
Diletant | 156:e68ee0bcdcda | 24 | device.counters.state.displacement -= device.counters.state.delta[(device.measurement.counter-16) & 0xff]; |
Diletant | 156:e68ee0bcdcda | 25 | device.counters.state.displacement -= device.counters.state.delta[(device.measurement.counter-15) & 0xff]; |
Diletant | 156:e68ee0bcdcda | 26 | device.counters.state.displacement += delta; |
Diletant | 156:e68ee0bcdcda | 27 | |
Diletant | 156:e68ee0bcdcda | 28 | device.counters.state.delta[device.measurement.counter] = delta; |
Diletant | 156:e68ee0bcdcda | 29 | |
Diletant | 156:e68ee0bcdcda | 30 | if (device.counters.state.displacement > 0) device.counters.state.amplitude += device.counters.state.displacement; |
Diletant | 156:e68ee0bcdcda | 31 | if (device.counters.state.displacement < 0) device.counters.state.amplitude -= device.counters.state.displacement; |
Diletant | 156:e68ee0bcdcda | 32 | |
Diletant | 156:e68ee0bcdcda | 33 | if (delta > 0) device.counters.state.frequency += delta; |
Diletant | 156:e68ee0bcdcda | 34 | if (delta < 0) device.counters.state.frequency -= delta; |
Diletant | 156:e68ee0bcdcda | 35 | |
Diletant | 156:e68ee0bcdcda | 36 | device.counters.state.accumulator += device.counters.state.angle; |
Diletant | 156:e68ee0bcdcda | 37 | } |