unsigned
int
a=0
,b=10
void
main()
{
tmod=0x01
th0=(65536-50000)/256
tl0=(65536-50000)%256
ea=1
et0=1
tr0=1
}
void
pwm()
interrupt
1
{
th0=(65536-50000)/256
tl0=(65536-50000)%256
a++
p1^1=0
if(a=20)
{
a=0
}
if(a=b)
{
p1^1=1
}
}
调节a
,b的值即可调节占空比,程闭激序框架就是这样,具体自己改吧
首先读出AD值,这样就是AD就是一个中或数值。假如AD结果为渣蠢0-256,
那么0就对应0%
占空比如培陪
128对应50%,256对应100%占空比。
利用计数器进行测量在进行占空比测量时,最简单的一种方案就是使用计数器半周期完成测量。支持的计数器需颤梁要乎渣有双边沿分离检测的特性,在实际工作中,通常32位宽的计数器都支持该测量。该方案通过预设半周期时间可以得到非常高精度的测量结果。在NI的采集板卡类型中,cDAQ 9174,9178有四个计数器,每个槽都可以使用计数器资源,而cDAQ-9172只有5槽和6槽可以使用计数器资源。对于带2个24位计数器的板卡来说,这种板卡一般不具有双边沿分离检测,工程师可以采用脉冲宽度测量的方式,分别测量高脉宽时间和低脉宽时间,从而计算占空比。
利用模拟采集测量
除了使用计数器来完成占空比测量之外,工程师也可以利用模拟采集来完成测量工作。该方案主要使用波形测量选板中的脉冲测量VI,可以根据周期性的采集数据计算占空比。要求模拟采集有足够高的采样率(5~10倍以上脉冲频率,根据占空比而定)才能获取足够的波形信息,来提高占空比测量精度。这种通过软件来计算占空比的方式处理速度相对而言比较一般。
利用FPGA完成测量
想要测量PWM波的占空比,工程师还可以利用FPGA来帮助自己完成测量工作。FPGA上有精确的40MHz时钟驱动的计数器资源,通过记录信号沿变化时刻的计数器值可以计算得到PWM波的脉宽和周期,从而计算茄顷运出占空比。可使用程序即为FPGA占空比测量程序,实际调用时可将Digital In换成模块IO。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)