sinewave.ini

来自「TI的单片机ADUC812的AD例程」· INI 代码 · 共 31 行

INI
31
字号
signal void analog0_sine (float limit)  {
  float i;
  float sine;

  printf ("Analog0_sine (%f) entered.\n", limit);
  
  while (1)  {          /* forever */

    /* SIN swings from -1 to 1 so... adjust it to swing from 0 to 1 */
    /* This is a Taylor series that calculates SIN */
    /* i is the angle where -1.0 = -pi/2 and 1.0 = +pi/2 */

    for (i = -1.0; i < 1.0; i += 0.01) {
      sine = i * (1.570796329 - i * i * (0.6459640960 - i * i * (0.07969262599 - i * i * (0.004681754102 - i * i * (0.0001604411842)))));
/*      printf ("SIN(%4f) = %6f\n", i * 90.0, sine); */
      ain0 = ((sine + 1.0) / 2.0) * limit;
      twatch (2000000);
    }

    for (i = 1.0; i > -1.0; i -= 0.01) {
      sine = i * (1.570796329 - i * i * (0.6459640960 - i * i * (0.07969262599 - i * i * (0.004681754102 - i * i * (0.0001604411842)))));
/*      printf ("SIN(%4f) = %6f\n", i * 90.0, sine); */
      ain0 = ((sine + 1.0) / 2.0) * limit;
      twatch (2000000);
    }
  }
}

analog0_sine (2.500)

⌨️ 快捷键说明

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