跳到主要内容

十一、自定义脉宽波形序列发生器

自定义脉宽波形序列发生器,可用作步进电机信号源,红外发射信号源,以及定制化方波生成等。

11.1 例程实现功能

每隔1秒发送一串开发者自定脉冲宽度以及自定义数量的方波序列,开发者并通过逻辑分析仪查看实际波形。

11.2 脉冲接口位置

脉冲端口在开发板中的位置如下图所示:其中D3端的信号为3.3V TTL电平,GND为地信号。

pulse

11.3 不含载波的完整示例代码

--将80M主频经过分频80后为1Mhz,即分辨率为1us。
--默认(空闲时)输出低电平,禁止输出反向功能,禁止载波功能
LIB_WaveFormConfig(80, 0, 0, 0, 0, 0, 0)
--定义一个包含5个脉冲的波形表格,该表格最大可包含512个脉冲,
--每个脉冲的宽度绝对值必须小于32767
tab = {100,-100,500,-500,1000}
while(GC(1) == true)
do
--每隔1秒发送一串包含五个高低电平的波形(阻塞式发送)
--五个电平脉宽分别为100us,100us,500us,500us,1000us
LIB_WaveFormSend(tab, 1)
LIB_DelayMs(1000)
end

代码运行后通过逻辑分析仪监测D3引脚所得波形图如下:

exp1

11.4 含载波的完整示例代码

--将80M主频经过分频80后为1Mhz,即分辨率为1us。
--默认(空闲时)输出低电平,禁止输出反向功能,使能载波功能
--载波占空比为50%,载波频率1MHz,载波有效电平为高电平
LIB_WaveFormConfig(80, 0, 0, 1, 50, 1000000, 1)
--定义一个包含5个脉冲的波形表格,该表格最大可包含512个脉冲,
--每个脉冲的宽度绝对值必须小于32767
tab = {100,-100,500,-500,1000}
while(GC(1) == true)
do
--每隔1秒发送一串包含五个高低电平的波形(阻塞式发送)
--五个电平脉宽分别为100us,100us,500us,500us,1000us
LIB_WaveFormSend(tab, 1)
LIB_DelayMs(1000)
end

代码运行后通过逻辑分析仪监测D3引脚所得波形图如下:

exp2

将波形拉开以后可以看到频率为1Mhz的载波波形,图形如下:

exp2_1