[ZLG-ARM] 用定时器进行脉宽测量:)

[复制链接]
2480|2
 楼主| malaohu 发表于 2007-5-18 08:56 | 显示全部楼层 |阅读模式
这是我的程序,用来是实时测量由遥控器发出的pwm波的正脉冲的长度。pwm波70hz,正脉冲的长度可以从2.1ms到0.9ms之间调整。<br /><br /><br />//测量PWM波的正脉冲长<br />uint32&nbsp;Pwm_Measure(void)<br />{&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;DUTY;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0PR&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TC&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while((IO0PIN&0x00000040)&nbsp;==&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//检测p0.6的电压信号<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0x01;<br />&nbsp;&nbsp;&nbsp;&nbsp;while((IO0PIN&0x00000040)&nbsp;!=&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DUTY&nbsp;=&nbsp;T0TC;<br />&nbsp;&nbsp;&nbsp;&nbsp;return(DUTY);<br />}<br /><br /><br />int&nbsp;main()<br />{&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;time;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;0X00000005;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置i/o连接到UART0<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;UART0_Init();<br />&nbsp;&nbsp;&nbsp;&nbsp;//VICVECT_Init();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;time&nbsp;=&nbsp;Pwm_Measure();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt4;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;rcv_buf&nbsp;=&nbsp;time&nbsp;&&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time&nbsp;=&nbsp;time&nbsp;&gt&gt8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendBuf();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return(0);<br />}<br /><br />从串口返回一些数。你比如说我用遥控器控制pwm波的占空比由少变多,最一开始的返回的数跟最后的返回值是一样的,除了我在调整遥控器过程中返回的数会发生变化。这是为什么啊,为什么pwm的占空比变了,返回的数最后还是一样的啊?
 楼主| malaohu 发表于 2007-5-18 09:20 | 显示全部楼层

啊~~~

我测试过了TC得知没有问题,那就是串口部分有问题了,可是也没看出来啊
zlgARM 发表于 2007-5-18 20:51 | 显示全部楼层

老虎

您好!<br />可否简化问题。<br />把问题转化为:<br />用LPC2000系列ARM的PWM输出特定宽度正脉冲的波形;(用示波器验证达到了效果)<br />然后再用自己的定时器测量,看看能否准确测出……<br /><br /><br />这类问题并不在技术支持范围之内,还请您海涵。<br /><br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

95

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部