野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12790|回复: 7

关于ISO开发板的DAC问题 请教

[复制链接]
发表于 2014-5-4 15:50:02 | 显示全部楼层 |阅读模式
本帖最后由 1045426595 于 2014-5-4 16:05 编辑

DualSine12bit[Idx]=(Sine12bit[Idx]<<16)+(Sine12bit[Idx])
这句代码 什么意思啊。在DAC的实验中
火哥  视频没明白, 望回复
回复

使用道具 举报

发表于 2014-5-4 16:09:45 | 显示全部楼层
因为程序里是在两个通道输出正弦波的,所以这里是一次过把两个单通道数据(16位)存入一个32位的变量里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 16:25:58 | 显示全部楼层
那火哥的Sine12bit[Idx】的波形数据组里第一个数是2448,那代入
DualSine12bit[Idx]=(Sine12bit[Idx]<<16)+(Sine12bit[Idx]);也就是
DualSine12bit[0]=(Sine12bit[0]<<16)+(Sine12bit[0]);结果是什么啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 16:30:22 | 显示全部楼层
子车梨祎 发表于 2014-5-4 16:09
因为程序里是在两个通道输出正弦波的,所以这里是一次过把两个单通道数据(16位)存入一个32位的变量里

那火哥的Sine12bit[Idx】的波形数据组里第一个数是2448,那代入
DualSine12bit[Idx]=(Sine12bit[Idx]<<16)+(Sine12bit[Idx]);也就是
DualSine12bit[0]=(Sine12bit[0]<<16)+(Sine12bit[0]);结果是什么啊?
回复 支持 反对

使用道具 举报

发表于 2014-5-4 16:31:18 | 显示全部楼层
1045426595 发表于 2014-5-4 16:25
那火哥的Sine12bit[Idx】的波形数据组里第一个数是2448,那代入
DualSine12bit=(Sine12bit

不要这样纠结结果是多少,你应该这样拆开来看:前16位存储的是sin12bit[Idx](正弦波的某个数据),后16位也是存储sin12bit[Idx],然后再最终使用的时候,前16位赋值给一个通道,后16位赋值给另一个通道,所以在两个通道中,最后会输出两个相同的正弦波
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 16:36:33 | 显示全部楼层
随风 发表于 2014-5-4 16:31
不要这样纠结结果是多少,你应该这样拆开来看:前16位存储的是sin12bit(正弦波的某个数据),后16位也是 ...

那也就是说本质上虽然双DAC寄存器是32位的,但是实际上0-15是给通道1,16-31是给通道2,两通道各取所需?不像普通的32位,高16位和低16位可以组成一个值?这里不是结果值的问题了,对吗?
回复 支持 反对

使用道具 举报

发表于 2014-5-4 19:55:34 | 显示全部楼层
1045426595 发表于 2014-5-4 16:36
那也就是说本质上虽然双DAC寄存器是32位的,但是实际上0-15是给通道1,16-31是给通道2,两通道各取所需? ...

对,就是两个值,赋给两个通道
回复 支持 反对

使用道具 举报

发表于 2015-6-3 17:57:10 | 显示全部楼层
随风 发表于 2014-5-4 16:31
不要这样纠结结果是多少,你应该这样拆开来看:前16位存储的是sin12bit(正弦波的某个数据),后16位也是 ...

开发板给的例程里用的是双通道输出,如果想单通道输出,除了改地址外还应该有什么修改,是不是把那个32位的数组屏蔽,直接输出16位的数组,修改了以后还是有错误呀
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-6 20:22 , Processed in 0.040240 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表