从 psoc 外部生成带有可变参数(如振幅等)的正弦波。

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

大家好。
我是 psoc 的新手,我有 psoc 5lp 我尝试过 wavedac 模块来生成正弦波,但我没有找到任何 api 可以在代码中或外部使用 pod 或按钮更改其振幅、频率和其他参数。 我如何 CAN 生成正弦波,其中我 CAN 从 psoc 外部改变振幅、频率或波长等参数,例如使用吊舱按钮等。
谢谢。。

0 点赞
2 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager
0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

谢谢 @odissey1 和 @ChristopherF_51 的回复。 我已经设法用以下代码完成了这项任务的某些部分。 我不知道这在 PSOC 中是否是个好习惯。 但是,是的,它在某种程度上对我有用。

#include p

#include

 

#define 波形_SIZE 256

 

/* 波形阵列*/

uint8 SineWave [Waveform_SIZE];

 

/* 初始化正弦波形阵列的函数 */

void initializeSineWave(uint8 *WavePtr、uint16 SampleSize、双振幅、双偏移);

 

int 主要 ()

{

cyglobalIntenable; /* 启用全局中断。 */

   

wavedac8_1_start ();//启动 waveDac8

   

双振幅 = 12; //所需的振幅变化

双偏移量 = 128;//所需的偏移量变化

   

初始化 SineWave(SineWave、WAVEFORM_SIZE、振幅、偏移量);

   

WaveDac8_1_Wave1Setup(SineWave,WAVEFORM_SIZE);

   

wavedac8_1_enable ();//启用 WaveDac8

   

对于 (;;)

{

//你的主循环代码在这里

}

}

 

void initializeSineWave(uint8 *WavePtr、uint16 SampleSize、双振幅、双偏移)

{

double step = 2 * M_PI/(双精度)sampleSize;

for (uint16 i = 0;i < sampleSize;i++)

{

双精度值 = sin(步长 * i)* 振幅 + 偏移量;

WavePtr [i] = (uint8) 值;

}

}

0 点赞