哪位大神做过msp430的段码LCD显示,下面那个for小循环是什...

2019-07-15 16:20发布

void Disp_Signed_Long(long Value)
{
  unsigned int i;
  unsigned long Output;
  char fNeg = 0;

  if (Value < 0)                                // Test for negative value
  {
    Value = -Value;                             // Negate value
    fNeg = 1;                                   // Set negative flag
  }

  for (i = 32, Output = 0; i; i--)              // BCD Conversion, 32-Bit
  {
    Output = __bcd_add_long(Output, Output);    //功能:两个 32 位 BCD 格式的数相加,返回和。
   
    if (Value & 0x80000000)
      Output = __bcd_add_long(Output, 1);     
   
    Value <<= 1;
  }

  if (fNeg)                                     // Display neg sign?
    Output |= 0x80000000;                       // Bit 31 indicates neg. number

  Disp_BCD(Output);
}




value是AD转换之后采集到的数值
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。