123

Dependencies:   mbed

Fork of LG by igor Apu

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?

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