DAC Sinus 演示(使用 PEx + KSDK 1.2 + KDS 3.0) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
创建的 DAC Sinus 示例是由自己的缓冲区触发的 PIT,适用于 FRDM-K64F。 将模拟组件fsl_dac外设驱动程序添加到项目 设置电压参考 - DAC 组件的参考 2 (daConv1:fsl_dac) 将定时器组件fsl_pit外设驱动程序添加到项目 设置周期为 1 毫秒并启用定时器组件的中断(pitTimer1:fsl_pit) 在Sources -> Events.c中设置正弦缓冲区 #define DAC_TEST_BUFF_SIZE (120U) uint16_t dac_buffer[DAC_TEST_BUFF_SIZE] = {
0x7ff, 0x86a, 0x8d5, 0x93f, 0x9a9, 0xa11, 0xa78, 0xadd, 0xb40, 0xba1,
0xbff, 0xc5a, 0xcb2, 0xd08, 0xd59, 0xda7, 0xdf1, 0xe36, 0xe77, 0xeb4,
0xeec, 0xf1f, 0xf4d, 0xf77, 0xf9a, 0xfb9, 0xfd2, 0xfe5, 0xff3, 0xffc,
0xfff, 0xffc, 0xff3, 0xfe5, 0xfd2, 0xfb9, 0xf9a, 0xf77, 0xf4d, 0xf1f,
0xeec, 0xeb4, 0xe77, 0xe36, 0xdf1, 0xda7, 0xd59, 0xd08, 0xcb2, 0xc5a,
0xbff, 0xba1, 0xb40, 0xadd, 0xa78, 0xa11, 0x9a9, 0x93f, 0x8d5, 0x86a,
0x7ff, 0x794, 0x729, 0x6bf, 0x655, 0x5ed, 0x586, 0x521, 0x4be, 0x45d,
0x3ff, 0x3a4, 0x34c, 0x2f6, 0x2a5, 0x257, 0x20d, 0x1c8, 0x187, 0x14a,
0x112, 0xdf, 0xb1, 0x87, 0x64, 0x45, 0x2c, 0x19, 0xb, 0x2,
0x0, 0x2, 0xb, 0x19, 0x2c, 0x45, 0x64, 0x87, 0xb1, 0xdf,
0x112, 0x14a, 0x187, 0x1c8, 0x20d, 0x257, 0x2a5, 0x2f6, 0x34c, 0x3a4,
0x3ff, 0x45d, 0x4be, 0x521, 0x586, 0x5ed, 0x655, 0x6bf, 0x729, 0x794 };
uint16_t index = 0;
void pitTimer1_IRQHandler(void) {
/* Clear interrupt flag.*/
PIT_HAL_ClearIntFlag(g_pitBase[FSL_PITTIMER1], FSL_PITTIMER1_CHANNEL);
/* Write your code here ... */
DAC_DRV_Output(FSL_DACONV1,dac_buffer[index++]);
if(index==DAC_TEST_BUFF_SIZE) index = 0; } 带有 SALEAE 的 FRDM-K64F 正弦输出 享受! 🙂 概述 Re: DAC Sinus Demo (using PEx + KSDK 1.2 + KDS 3.0) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
谢谢你! 这很有用...但是我需要从 DAC 中得到 13kHz 左右的正弦波,所以我想要更高的采样率。我不想在发出这个信号时消耗太多资源,所以我想使用 DMA 来卸载中断负载。PE bean 中的示例适用于过时的 DMA 方法,我无法使 DMA 示例正常工作,因为我获得了 DAC 输出,但它没有正确引用我的表(我每 16 个样本中只有 1 个是正确的,其余的都是锯齿状的,很奇怪)。时间是正确的,DMA 中断正在触发,但是 DMA 有点混乱,所以我需要帮助。显然我没有正确设置 DMA。 如果您能扩展此示例以在 MKV31F 上使用 DMA,那就太好了 谢谢! Re: DAC Sinus Demo (using PEx + KSDK 1.2 + KDS 3.0) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
你好,乔丹, 谢谢你的提问,我忘了提到它了。 为了获得这些值,您可以对其进行计算:-)或将它们放入具有最大振幅值的正弦发生器中。 例如,您可以使用任何在线正弦发生器,如正弦查找表发生器计算器,并用 其中,点数为数组值,对于dac_buffer[DAC_TEST_BUFF_SIZE], 最大振幅为 (2^12) -1,每行数是显示结果的值。 之后,您会得到这些值:(我发现值之间存在细微的差异,但这可能是由于四舍五入造成的) 我希望它能帮助你, 顺祝商祺! Iva Re: DAC Sinus Demo (using PEx + KSDK 1.2 + KDS 3.0) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Hi Iva, 这个例子非常非常有用:smileyhappy:。 只是一个问题: 如何让缓冲区产生信号?我使用 EXCEL 来实现,但是还有其他方法吗? 谢谢! 乔丹c:
查看全文