apci1710_pwm.c

来自「最新版comedi的源码」· C语言 代码 · 共 1,646 行 · 第 1/5 页

C
1,646
字号
					      }					   ul_LowTiming     = ul_LowTiming - 1;					   ul_LowTimerValue = ul_LowTimerValue - 2;					   if (b_ClockSelection != APCI1710_40MHZ)					      {					      ul_LowTimerValue = (ULONG) ((double) (ul_LowTimerValue) * 1.007752288);					      }										break;				   /******/				   /* æs */				   /******/				   case 1:										   /******************/					   /* Timer 0 factor */					   /******************/					   ul_LowTimerValue = (ULONG) (ul_LowTiming * (0.25 * b_ClockSelection));					   /*******************/					   /* Round the value */					   /*******************/					   if ((double) ((double) ul_LowTiming * (0.25 * (double) b_ClockSelection)) >= ((double) ((double) ul_LowTimerValue + 0.5)))					      {					      ul_LowTimerValue = ul_LowTimerValue + 1;					      }					   /*****************************/					   /* Calculate the real timing */					   /*****************************/					   *pul_RealLowTiming = (ULONG) (ul_LowTimerValue / (0.25 * (double) b_ClockSelection));					   d_RealLowTiming    = (double) ul_LowTimerValue / ((double) 0.25 * (double) b_ClockSelection);					   if ((double) ((double) ul_LowTimerValue / (0.25 * (double) b_ClockSelection)) >= (double) ((double) *pul_RealLowTiming + 0.5))					      {					      *pul_RealLowTiming = *pul_RealLowTiming + 1;					      }					   ul_LowTiming     = ul_LowTiming - 1;					   ul_LowTimerValue = ul_LowTimerValue - 2;					   if (b_ClockSelection != APCI1710_40MHZ)					      {					      ul_LowTimerValue = (ULONG) ((double) (ul_LowTimerValue) * 1.007752288);					      }										break;				   /******/				   /* ms */				   /******/				   case 2:										   /******************/					   /* Timer 0 factor */					   /******************/					   ul_LowTimerValue = ul_LowTiming * (250.0 * b_ClockSelection);					   /*******************/					   /* Round the value */					   /*******************/					   if ((double) ((double) ul_LowTiming * (250.0 * (double) b_ClockSelection)) >= ((double) ((double) ul_LowTimerValue + 0.5)))					      {					      ul_LowTimerValue = ul_LowTimerValue + 1;					      }					   /*****************************/					   /* Calculate the real timing */					   /*****************************/					   *pul_RealLowTiming = (ULONG) (ul_LowTimerValue / (250.0 * (double) b_ClockSelection));					   d_RealLowTiming    = (double) ul_LowTimerValue / (250.0 * (double) b_ClockSelection);					   if ((double) ((double) ul_LowTimerValue / (250.0 * (double) b_ClockSelection)) >= (double) ((double) *pul_RealLowTiming + 0.5))					      {					      *pul_RealLowTiming = *pul_RealLowTiming + 1;					      }					   ul_LowTiming     = ul_LowTiming - 1;					   ul_LowTimerValue = ul_LowTimerValue - 2;					   if (b_ClockSelection != APCI1710_40MHZ)					      {					      ul_LowTimerValue = (ULONG) ((double) (ul_LowTimerValue) * 1.007752288);					      }										break;				   /*****/				   /* s */				   /*****/				   case 3:					   /******************/					   /* Timer 0 factor */					   /******************/					   ul_LowTimerValue = (ULONG) (ul_LowTiming * (250000.0 * b_ClockSelection));					   /*******************/					   /* Round the value */					   /*******************/					   if ((double) ((double) ul_LowTiming * (250000.0 * (double) b_ClockSelection)) >= ((double) ((double) ul_LowTimerValue + 0.5)))					      {					      ul_LowTimerValue = ul_LowTimerValue + 1;					      }					   /*****************************/					   /* Calculate the real timing */					   /*****************************/					   *pul_RealLowTiming = (ULONG) (ul_LowTimerValue / (250000.0 * (double) b_ClockSelection));					   d_RealLowTiming    = (double) ul_LowTimerValue / (250000.0 * (double) b_ClockSelection);					   if ((double) ((double) ul_LowTimerValue / (250000.0 * (double) b_ClockSelection)) >= (double) ((double) *pul_RealLowTiming + 0.5))					      {					      *pul_RealLowTiming = *pul_RealLowTiming + 1;					      }					   ul_LowTiming     = ul_LowTiming - 1;					   ul_LowTimerValue = ul_LowTimerValue - 2;					   if (b_ClockSelection != APCI1710_40MHZ)					      {					      ul_LowTimerValue = (ULONG) ((double) (ul_LowTimerValue) * 1.007752288);					      }										break;				   /******/				   /* mn */				   /******/				   case 4:										   /******************/					   /* Timer 0 factor */					   /******************/					   ul_LowTimerValue = (ULONG) ((ul_LowTiming * 60) * (250000.0 * b_ClockSelection));					   /*******************/					   /* Round the value */					   /*******************/					   if ((double) ((double) (ul_LowTiming * 60.0) * (250000.0 * (double) b_ClockSelection)) >= ((double) ((double) ul_LowTimerValue + 0.5)))					      {					      ul_LowTimerValue = ul_LowTimerValue + 1;					      }					   /*****************************/					   /* Calculate the real timing */					   /*****************************/					   *pul_RealLowTiming = (ULONG) (ul_LowTimerValue / (250000.0 * (double) b_ClockSelection)) / 60;					   d_RealLowTiming    = ((double) ul_LowTimerValue / (250000.0 * (double) b_ClockSelection)) / 60.0;					   if ((double) (((double) ul_LowTimerValue / (250000.0 * (double) b_ClockSelection)) / 60.0) >= (double) ((double) *pul_RealLowTiming + 0.5))					      {					      *pul_RealLowTiming = *pul_RealLowTiming + 1;					      }					   ul_LowTiming     = ul_LowTiming - 1;					   ul_LowTimerValue = ul_LowTimerValue - 2;					   if (b_ClockSelection != APCI1710_40MHZ)					      {					      ul_LowTimerValue = (ULONG) ((double) (ul_LowTimerValue) * 1.007752288);					      }										break;				   }				/*************************************/				/* Calculate the high division fator */				/*************************************/				switch (b_TimingUnit)				   {				   /******/				   /* ns */				   /******/				   case 0:										   /******************/					   /* Timer 0 factor */					   /******************/					   ul_HighTimerValue = (ULONG) (ul_HighTiming * (0.00025 * b_ClockSelection));					   /*******************/					   /* Round the value */					   /*******************/					   if ((double) ((double) ul_HighTiming * (0.00025 * (double) b_ClockSelection)) >= ((double) ((double) ul_HighTimerValue + 0.5)))					      {					      ul_HighTimerValue = ul_HighTimerValue + 1;					      }					   /*****************************/					   /* Calculate the real timing */					   /*****************************/					   *pul_RealHighTiming = (ULONG) (ul_HighTimerValue / (0.00025 * (double) b_ClockSelection));					   d_RealHighTiming    = (double) ul_HighTimerValue / (0.00025 * (double) b_ClockSelection);					   if ((double) ((double) ul_HighTimerValue / (0.00025 * (double) b_ClockSelection)) >= (double) ((double) *pul_RealHighTiming + 0.5))					      {					      *pul_RealHighTiming = *pul_RealHighTiming + 1;					      }					   ul_HighTiming     = ul_HighTiming - 1;					   ul_HighTimerValue = ul_HighTimerValue - 2;					   if (b_ClockSelection != APCI1710_40MHZ)					      {					      ul_HighTimerValue = (ULONG) ((double) (ul_HighTimerValue) * 1.007752288);					      }										break;				   /******/				   /* æs */				   /******/				   case 1:										   /******************/					   /* Timer 0 factor */					   /******************/					   ul_HighTimerValue = (ULONG) (ul_HighTiming * (0.25 * b_ClockSelection));					   /*******************/					   /* Round the value */					   /*******************/					   if ((double) ((double) ul_HighTiming * (0.25 * (double) b_ClockSelection)) >= ((double) ((double) ul_HighTimerValue + 0.5)))					      {					      ul_HighTimerValue = ul_HighTimerValue + 1;					      }					   /*****************************/					   /* Calculate the real timing */					   /*****************************/					   *pul_RealHighTiming = (ULONG) (ul_HighTimerValue / (0.25 * (double) b_ClockSelection));					   d_RealHighTiming    = (double) ul_HighTimerValue / ((double) 0.25 * (double) b_ClockSelection);					   if ((double) ((double) ul_HighTimerValue / (0.25 * (double) b_ClockSelection)) >= (double) ((double) *pul_RealHighTiming + 0.5))					      {					      *pul_RealHighTiming = *pul_RealHighTiming + 1;					      }					   ul_HighTiming     = ul_HighTiming - 1;					   ul_HighTimerValue = ul_HighTimerValue - 2;					   if (b_ClockSelection != APCI1710_40MHZ)					      {					      ul_HighTimerValue = (ULONG) ((double) (ul_HighTimerValue) * 1.007752288);					      }										break;				   /******/				   /* ms */				   /******/				   case 2:										   /******************/					   /* Timer 0 factor */					   /******************/					   ul_HighTimerValue = ul_HighTiming * (250.0 * b_ClockSelection);					   /*******************/					   /* Round the value */					   /*******************/					   if ((double) ((double) ul_HighTiming * (250.0 * (double) b_ClockSelection)) >= ((double) ((double) ul_HighTimerValue + 0.5)))					      {					      ul_HighTimerValue = ul_HighTimerValue + 1;					      }					   /*****************************/					   /* Calculate the real timing */					   /*****************************/					   *pul_RealHighTiming = (ULONG) (ul_HighTimerValue / (250.0 * (double) b_ClockSelection));					   d_RealHighTiming    = (double) ul_HighTimerValue / (250.0 * (double) b_ClockSelection);					   if ((double) ((double) ul_HighTimerValue / (250.0 * (double) b_ClockSelection)) >= (double) ((double) *pul_RealHighTiming + 0.5))					      {					      *pul_RealHighTiming = *pul_RealHighTiming + 1;					      }					   ul_HighTiming     = ul_HighTiming - 1;					   ul_HighTimerValue = ul_HighTimerValue - 2;					   if (b_ClockSelection != APCI1710_40MHZ)					      {					      ul_HighTimerValue = (ULONG) ((double) (ul_HighTimerValue) * 1.007752288);					      }										break;				   /*****/				   /* s */				   /*****/				   case 3:

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?