完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
//----------------------------------------------------------------
//对通道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个回答
|
|
|
这应该是你界面或者结果的显示吧。。百位十位个位
|
|
|
|
|
|
|
|
|
|
|
|
云汉达人
个人对 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],中了,所以简单的来说,其实就是一个“乘法”。 |
|
|
|
|
|
|
|
|
|
|
|
Display_Buffer[CH*4]=Result/100; //提取百位
Display_Buffer[CH*4+1]=Result/10%10; //提取十位 Display_Buffer[CH*4+2]=Result%10; //提取个位 这三句话实际上是提取Result的个十百位的数分别存入显示缓存数组里 |
|
|
|
|
只有小组成员才能发言,加入小组>>
1027 浏览 1 评论
1856 浏览 0 评论
1837 浏览 1 评论
3261 浏览 5 评论
3587 浏览 9 评论
1029浏览 1评论
1853浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1365浏览 1评论
1858浏览 0评论
1183浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 13:59 , Processed in 0.831258 second(s), Total 82, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5257