123

Dependencies:   mbed

Fork of LG by igor Apu

DeviceDither.c

Committer:
Diletant
Date:
2016-05-09
Revision:
156:e68ee0bcdcda
Parent:
149:abbf7663d27d
Child:
161:efd949e8d536

File content as of revision 156:e68ee0bcdcda:

#include "Device.h"
extern Device device;

void InitDitherWithDefaults(void){
  device.dither.settings.enabled = 1;
  device.dither.settings.rise = 32;
  device.dither.settings.fall = 64;
}

void InitDither(void){
  device.dither.state.enabled = device.dither.settings.enabled;
  device.dither.state.rise = device.dither.settings.rise;
  device.dither.state.fall = device.dither.settings.fall;
  device.dither.state.counter = 0;
  device.dither.state.pin1 = 0;
  device.dither.state.pin2 = 0;
}

void DeviceStartDither(void){
}

void DeviceDitherCycle(void){
  uint8_t pin1, pin2;
  if ((device.dither.state.counter > device.dither.settings.rise) && (device.dither.state.counter < device.dither.settings.fall)){
    pin1 = 1; pin2 = 1;  
  } else {
    pin1 = 0; pin2 = 0;
  }
  if (device.measurement.counter < 16){
      pin2 = 0;
  } else {
      pin1 = 0;
  }
  if (!device.dither.state.enabled) {
    pin1 = 0; pin2 = 0;
  }
  if (pin1 > device.dither.state.pin1) LPC_GPIO1->FIOCLR = 1<<25;
  if (pin1 < device.dither.state.pin1) LPC_GPIO1->FIOSET = 1<<25;
  if (pin2 > device.dither.state.pin2) LPC_GPIO1->FIOCLR = 1<<28;
  if (pin2 < device.dither.state.pin2) LPC_GPIO1->FIOSET = 1<<28;
  device.dither.state.pin1 = pin1;
  device.dither.state.pin2 = pin2;
}