DAC输出梯形波

2019-07-20 22:55发布

原子哥,各位大神,我想要用TIM+DAC+DMA输出一个梯形波形,总共时长是30min(1800s),上升和下降阶段各是30s,幅值是3V,如下图所示:

目前打算用TIM+DAC+DMA实现,但是DMA里面内存的数组应该怎么写呀?感觉应该不会是要把所有点都写进数组吧,但是我也不知道有啥其他的办法,请各位指点迷津!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
xuande
1楼-- · 2019-07-21 01:41
 精彩回答 2  元偷偷看……
xuande
2楼-- · 2019-07-21 07:18
 精彩回答 2  元偷偷看……
xuyaqi
3楼-- · 2019-07-21 11:09
梯形两边算出速率按时间来输出不同的电平,顶部同样用时间来判断输出电平数值。
王木土哈哈哈
4楼-- · 2019-07-21 13:08
xuande 发表于 2016-4-11 13:59
两段斜线占据多数存储空间,

中间平线可以采用输出一次、然后保持的方式,

我现在的困惑是不知道中断那里改怎么处理,新手中断学的迷迷糊糊的。比如我现在打算使用定时器每隔1ms产生一个中断触发DMA,DMA发送一个数据给DAC输出,以上升阶段的30s为例,这样的话我就需要在DMA内存中输入一个30*1000的数组(实在是太多了),这个应该不是正确的做法吧?但是我又不大清楚应该怎么做
王木土哈哈哈
5楼-- · 2019-07-21 14:05
xuyaqi 发表于 2016-4-11 14:51
梯形两边算出速率按时间来输出不同的电平,顶部同样用时间来判断输出电平数值。

梯形两边的速率是知道的,时间我打算1ms进一次中断,但是产生中断之后DMA的内存空间里我是应该设置内存地址自增,然后内存里面存y=k*t(t每次加1ms)吗?
xuyaqi
6楼-- · 2019-07-21 15:36
只要你有算法用不着存数组,中断来时算一下该输出啥电平直接输出不用预先存起来。

一周热门 更多>