完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
大家好,
我想转换一个12位读取从Δ∑ADC(范围= 1.024V单端)到8位DAC值(范围= 1.024V)。 我原本想把IM16 ADC转换成Uti8DAC值: Simulf(缓冲区)“%d,%d nr”,ADCVAL,(UIT8)ADCVAL);/ /注意Type ECAST UTRAP PATSHIPE(缓冲器); 但是,当我这样做时,我得到以下(使用Simultf函数): ADCVAL=3491 (UIT8)ADCVAL=- 23773 有人能建议我如何更好地处理这个过程吗?这个错误是编译器错误还是我犯了一个愚蠢的错误? 谢谢, 亚历克斯 以上来自于百度翻译 以下为原文 Hello All, I would like to convert a 12 bit reading from the delta-sigma ADC (range = 1.024V single ended) into an 8 bit DAC value (range = 1.024V). I had originally thought to typecase the int16 adc conversion into a uint8 DAC value: sprintf(buffer,"%d, %dnr", adc_val, (uint8)adc_val);//Note the typecast UART_PutString(buffer); However, when I do this I get the following (using the sprintf function): adc_val = 3491 (uint8)adc_val = - 23773 Can anyone suggest how I could better go about this process? Is this error a compilier thing or did I make a silly mistake? Thanks, Alex |
|
相关推荐
2个回答
|
|
|
你好,
将12位ADCl值除以16以获得8位DACTY值不是更好吗? 因此: DACCHIVE=ADCQUE值& gt;gt;4; 鲍勃 以上来自于百度翻译 以下为原文 Hi, wouldn't it be better to divide the 12-bit ADC_Value by 16 to get the 8-bit DAC_Value? Thus: DAC_Value = ADC_Value >> 4; Bob |
|
|
|
|
|
鲍伯的建议似乎是一个更好的方法。右移4个位置会产生你需要的结果。如果你的意图是查看DAT在UART,sprintf将做它的理想的方法,因为你已经在ASCII格式,可打印数据。因为你的目的是将数据写入DAC直接,你可以说数据uint8or可以右移12位数据由4位。
以上来自于百度翻译 以下为原文
|
|
|
|
|
只有小组成员才能发言,加入小组>>
786个成员聚集在这个小组
加入小组cyUSB3014一直显示2.1,不能到3.0情况,谁遇到过
7088 浏览 0 评论
2474 浏览 1 评论
2166 浏览 1 评论
4031 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
2073 浏览 6 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
7567浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
6114浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
742浏览 2评论
710浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
7962浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 09:04 , Processed in 0.930855 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
909