OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4611|回复: 10

求波形产生方法

[复制链接]

52

主题

247

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2017-8-19
在线时间
160 小时
发表于 2018-3-9 10:36:53 | 显示全部楼层 |阅读模式
1金钱
小弟在做毕设,但是卡在了怎么产生波形的方法上

我需要产生正弦波,三角波,方波以及锯齿波  ,需要用的是DAC+DMA

但是不知道怎么产生波形的函数。。。

我已经知道怎么用DAC和DMA来转换和传数据了,就是不知道怎么产生波形。。


希望各位前辈指教一下!!谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10824
金钱
10824
注册时间
2014-6-12
在线时间
1036 小时
发表于 2018-3-9 10:52:11 | 显示全部楼层
解析几何学过就应该知道各种波形的函数。
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10568
金钱
10568
注册时间
2017-2-18
在线时间
1913 小时
发表于 2018-3-9 11:10:37 | 显示全部楼层
正弦波,三角波,方波的产生网上看到过资料,可以搜搜
回复

使用道具 举报

52

主题

247

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2017-8-19
在线时间
160 小时
 楼主| 发表于 2018-3-9 13:06:04 | 显示全部楼层
peng1554 发表于 2018-3-9 11:10
正弦波,三角波,方波的产生网上看到过资料,可以搜搜

谢谢!!!!
回复

使用道具 举报

52

主题

247

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2017-8-19
在线时间
160 小时
 楼主| 发表于 2018-3-9 13:06:49 | 显示全部楼层
xuyaqi 发表于 2018-3-9 10:52
解析几何学过就应该知道各种波形的函数。

就是存在一点疑问哦
回复

使用道具 举报

52

主题

247

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2017-8-19
在线时间
160 小时
 楼主| 发表于 2018-3-9 13:20:51 | 显示全部楼层
/********生成正弦波形输出表***********/
void SineWave_Data( u16 cycle ,u16 *D)
{
        u16 i;
        for( i=0;i<cycle;i++)
        {
                D[i]=(u16)((Um*sin(( 1.0*i/(cycle-1))*2*PI)+Um)*4095/3.3);
        }
}

主要是4095以及3.3为什么这样用。。。   4095是12位DAC  为什么需要X4095/3.3呢??
主要这点搞不懂
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8017
金钱
8017
注册时间
2014-8-13
在线时间
1594 小时
发表于 2018-3-9 13:42:15 | 显示全部楼层
bbq 发表于 2018-3-9 13:20
/********生成正弦波形输出表***********/
void SineWave_Data( u16 cycle ,u16 *D)
{

3.3是Vref?  DAC的满电压3.3V?
回复

使用道具 举报

52

主题

247

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2017-8-19
在线时间
160 小时
 楼主| 发表于 2018-3-9 14:12:43 | 显示全部楼层
mack13013 发表于 2018-3-9 13:42
3.3是Vref?  DAC的满电压3.3V?

嗯嗯。不理解为什么要这样做。我看别人的例子
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8017
金钱
8017
注册时间
2014-8-13
在线时间
1594 小时
发表于 2018-3-9 14:32:00 | 显示全部楼层
bbq 发表于 2018-3-9 14:12
嗯嗯。不理解为什么要这样做。我看别人的例子

不知道啊,为了将DAC的输出电压钳制在0~1V之间??
回复

使用道具 举报

1

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-10-12
在线时间
76 小时
发表于 2018-3-9 14:40:41 | 显示全部楼层
bbq 发表于 2018-3-9 13:20
/********生成正弦波形输出表***********/
void SineWave_Data( u16 cycle ,u16 *D)
{

这样Vpp=Um
回复

使用道具 举报

9

主题

162

帖子

0

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2017-3-23
在线时间
255 小时
发表于 2018-3-13 16:21:58 | 显示全部楼层
公式:sin(((2*Pi)/m)*i)*V)
i:从1开始到m
m: 一个正弦波所有的点数
V:最高的电压
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 18:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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