#include "xc.h"
#include "dsp.h"

float ConvertIntToEngUnits(int x, const int *cnt, const float *eng)
{
  return ((eng[1]-eng[0])*((long) x- (long) cnt[0]))/(((long) cnt[1]- (long) cnt[0]))+eng[0];
}

int ConvertEngUnitsToInt(float x, const int *cnt, const float *eng)
{
  return ((cnt[1]-cnt[0])*(x-eng[0]))/(eng[1]-eng[0])+cnt[0];
}

float ConvertFractToEngUnits(fractional x, const int *cnt, const float *eng)
{
  return ((eng[1]-eng[0])*x)/((cnt[1]-cnt[0]));
}

fractional ConvertEngUnitsToFract(float x, const int *cnt, const float *eng)
{
  return (x*(cnt[1]-cnt[0]))/(eng[1]-eng[0]);  //TODO:  Need to check this for over/underflow/rollover
}


//const int ZoomFollow_cnt[2] =  {-16384, 16384};  //Cooresponds to 0->5V
//const float ZoomFollow_eng[2] =  {1.25 , 3.75};  // Volts