嵌入式学习小组
直播中

周莹

7年用户 163经验值
私信 关注

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

//----------------------------------------------------------------
//对通道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;
}

回帖(5)

刘颖

2019-7-30 09:46:32
这应该是你界面或者结果的显示吧。。百位十位个位
举报

任黎平

2019-7-30 10:00:18
ADC0的结果放入数组0,1,2单元,ADC1的结果放入数组4,5,6单元,,,
  *号的作用就是确定ADC0和1的存放单元的
举报

陈辉

2019-7-30 10:10:30
云汉达人
个人对 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],中了,所以简单的来说,其实就是一个“乘法”。
举报

周莹

2019-7-30 10:25:19
云汉达人
这个主要是取决于你的通道的配置吧。4这个位置代表的应该是通道数
举报

更多回帖

发帖
×
20
完善资料,
赚取积分