• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Display_Buffer[CH*4]=Result/100;中的*怎么理解

古之士大夫 2015-03-24 浏览量:753
//----------------------------------------------------------------
//对通道CH进行模/数转换
//----------------------------------------------------------------
void ADC_Convert(INT8U CH)
{
        int Result;
       SFIOR = 0x00;  
        ADCSRA=0XE6;   //11100110,ADC转换置位置,启动转换,64分频
        ADMUX=CH;     //ADC通道选择
        //读取转换结果,并转换为电压值
        Result=(int)((ADCL+(ADCH<<8))*500.0/1023.0);
 //将10位的模/数转换结果0X0000-0X03FF(即0-1023)转换为000-500之间的
        //待显示的数(电压0.00-5.00V)
        //或使用语句:Result=(int)(ADC*500.0/1023.0);
        //ADC0的结果放入数组0,1,2单元,ADC1的结果放入数组4,5,6单元
        Display_Buffer[CH*4]=Result/100;
        Display_Buffer[CH*4+1]=Result/10%10;
        Display_Buffer[CH*4+2]=Result%10;
}

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 应该是通道与序号的分隔符 [CH*4][CH*4+1]类似数组

    ADC0的结果放入数组0,1,2单元,

    ADC1的结果放入数组4,5,6单元

    • 发布于 2015-03-24
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 这应该是你界面或者结果的显示吧。。百位十位个位

    • 发布于2015-03-24
    • 举报
    • 评论 0
    • 0
    • 0

  • ADC0的结果放入数组0,1,2单元,ADC1的结果放入数组4,5,6单元,,,

    *号的作用就是确定ADC0和1的存放单元的

    • 发布于2015-03-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 个人对 Display_Buffer[CH*4]中*号的理解是,用来确定数组中元素的位置,实际上也就是起数学中“乘法”的作用,当然如果你的数组够长的话你也可以*5,*6,*7,这个是自定义的,你也可以*3,这样的话ADC0的数据就放到Display_Buffer[0],Display_Buffer[1],Display_Buffer[2],中了,而ADC1的数据就放到Display_Buffer[3],Display_Buffer[4],Display_Buffer[5],中了,所以简单的来说,其实就是一个“乘法”。
    • 发布于2015-03-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个主要是取决于你的通道的配置吧。4这个位置代表的应该是通道数
    • 发布于2015-03-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

Display_Buffer[CH*4]=Result/100;中的*怎么理解