谁能帮忙解释一下这段程序~!

2019-07-15 19:44发布

void Set_DACs(void)
{
   static unsigned phase_acc = 0;      // Holds phase accumulator

   int SIN_temp, COS_temp;             // Temporary 16-bit variables
   unsigned char index;                // Index into SINE table

   phase_acc += PHASE_ADD;             // Increment phase accumulator
   index = phase_acc >> 8;                 这个表达式是什么意思啊?

   SIN_temp = SINE_TABLE[index];       // Read the table value

   index += 64;                        // 90 degree phase shift这个怎么实现的啊?
   COS_temp = SINE_TABLE[index];

   // Add a DC bias to change the the rails from a bipolar (-32768 to 32767)
   // to unipolar (0 to 65535)
   // Note: the XOR with 0x8000 translates the bipolar quantity into
   // a unipolar quantity.

   IDA0 = SIN_temp ^ 0x8000;             // Update DAC values
   IDA1 = COS_temp ^ 0x8000;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。