123
Fork of LG by
DeviceCounters.c
- Committer:
- Diletant
- Date:
- 2016-06-19
- Revision:
- 173:7f938afb0447
- Parent:
- 167:bedc0a9d559a
- Child:
- 174:0f86eedd511c
File content as of revision 173:7f938afb0447:
#include "Device.h" extern Device device; void InitCountersDefaultSettings(void){ } void InitCountersState(void){ for (uint8_t i = 0; i < 32; i++) device.counters.state.delta[i] = 0; device.counters.state.angle = 0; device.counters.state.amplitude = 0; device.counters.state.frequency = 0; } void DeviceStartCounters(void){ DeviceStartQEI(); } void countersProcess(void){ int32_t delta = device.controller.QEI.state.delta; device.counters.state.angle -= device.counters.state.delta[(device.measurement.counter-31) & 0xff]; device.counters.state.angle += delta; device.counters.state.displacement += device.counters.state.delta[(device.measurement.counter-31) & 0xff]; device.counters.state.displacement -= device.counters.state.delta[(device.measurement.counter-16) & 0xff]; device.counters.state.displacement -= device.counters.state.delta[(device.measurement.counter-15) & 0xff]; device.counters.state.displacement += delta; device.counters.state.delta[device.measurement.counter] = delta; if (device.counters.state.displacement > 0) device.counters.state.amplitude += device.counters.state.displacement; if (device.counters.state.displacement < 0) device.counters.state.amplitude -= device.counters.state.displacement; if (delta > 0) device.counters.state.frequency += delta; if (delta < 0) device.counters.state.frequency -= delta; device.counters.state.accumulator += device.counters.state.angle; }