打印
[DemoCode下载]

M0518捕获30纳秒脉冲

[复制链接]
2430|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Nu_Micro|  楼主 | 2014-11-27 16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Nu_Micro 于 2014-11-27 18:27 编辑

M0518传说中PWM频率可以到100M,今天测试了一下,果然名不虚传,30纳秒的脉冲都能准确捕获! PWM_Capture.rar (292.76 KB)


沙发
haolaishi| | 2014-11-27 23:06 | 只看该作者
30ns,扯了吧。。。

使用特权

评论回复
板凳
骗子的片子| | 2014-11-28 22:17 | 只看该作者
30ns我看看来

使用特权

评论回复
地板
从小木丁丁| | 2014-11-29 11:57 | 只看该作者
haolaishi 发表于 2014-11-27 23:06
30ns,扯了吧。。。

这个真心有点玄

使用特权

评论回复
5
zxf0168| | 2014-11-29 16:58 | 只看该作者
按照楼主的例程跑一遍试试

使用特权

评论回复
6
373810773| | 2014-11-30 21:02 | 只看该作者
骗子的片子 发表于 2014-11-28 22:17
30ns我看看来

我也

使用特权

评论回复
7
373810773| | 2014-11-30 21:02 | 只看该作者
zxf0168 发表于 2014-11-29 16:58
按照楼主的例程跑一遍试试

是啊,跑跑试一下

使用特权

评论回复
8
gaoyang9992006| | 2014-12-2 21:45 | 只看该作者
确实给力的很。

使用特权

评论回复
9
Nu_Micro|  楼主 | 2014-12-3 15:52 | 只看该作者
30纳秒都是保守了,事实上,可以捕获10纳秒的脉冲,只是10纳秒的脉冲到了IO口就像正弦半波了

使用特权

评论回复
10
mintspring| | 2014-12-3 21:45 | 只看该作者
Nu_Micro 发表于 2014-12-3 15:52
30纳秒都是保守了,事实上,可以捕获10纳秒的脉冲,只是10纳秒的脉冲到了IO口就像正弦半波了 ...

说的太对了,跳变其实是缓慢变化的一个过程。

使用特权

评论回复
11
getappple| | 2014-12-3 22:13 | 只看该作者
PWM  100M  分辨率多少

使用特权

评论回复
12
598330983| | 2014-12-4 21:54 | 只看该作者
速度太快了

使用特权

评论回复
13
zxf0168| | 2014-12-11 11:08 | 只看该作者
gaoyang9992006 发表于 2014-12-2 21:45
确实给力的很。

必须给力啊

使用特权

评论回复
14
骗子的片子| | 2015-1-26 16:01 | 只看该作者
Nu_Micro 发表于 2014-12-3 15:52
30纳秒都是保守了,事实上,可以捕获10纳秒的脉冲,只是10纳秒的脉冲到了IO口就像正弦半波了 ...

:funk:这么厉害

使用特权

评论回复
15
gaoyang9992006| | 2015-1-26 17:59 | 只看该作者
PWM这个还是比较复杂的东西,所以官方给的库函数也很丰富,丰富代表着复杂:

uint32_t PWM_ConfigCaptureChannel(PWM_T *pwm,
                                  uint32_t u32ChannelNum,
                                  uint32_t u32UnitTimeNsec,
                                  uint32_t u32CaptureEdge);
uint32_t PWM_ConfigOutputChannel(PWM_T *pwm,
                                 uint32_t u32ChannelNum,
                                 uint32_t u32Frequncy,
                                 uint32_t u32DutyCycle);
void PWM_Start(PWM_T *pwm, uint32_t u32ChannelMask);
void PWM_Stop(PWM_T *pwm, uint32_t u32ChannelMask);
void PWM_ForceStop(PWM_T *pwm, uint32_t u32ChannelMask);
void PWM_EnableADCTrigger(PWM_T *pwm, uint32_t u32ChannelNum, uint32_t u32Condition);
void PWM_DisableADCTrigger(PWM_T *pwm, uint32_t u32ChannelNum);
void PWM_ClearADCTriggerFlag(PWM_T *pwm, uint32_t u32ChannelNum, uint32_t u32Condition);
uint32_t PWM_GetADCTriggerFlag(PWM_T *pwm, uint32_t u32ChannelNum);
void PWM_EnableCapture(PWM_T *pwm, uint32_t u32ChannelMask);
void PWM_DisableCapture(PWM_T *pwm, uint32_t u32ChannelMask);
void PWM_EnableOutput(PWM_T *pwm, uint32_t u32ChannelMask);
void PWM_DisableOutput(PWM_T *pwm, uint32_t u32ChannelMask);
void PWM_EnableDeadZone(PWM_T *pwm, uint32_t u32ChannelNum, uint32_t u32Duration);
void PWM_DisableDeadZone(PWM_T *pwm, uint32_t u32ChannelNum);
void PWM_EnableCaptureInt(PWM_T *pwm, uint32_t u32ChannelNum, uint32_t u32Edge);
void PWM_DisableCaptureInt(PWM_T *pwm, uint32_t u32ChannelNum, uint32_t u32Edge);
void PWM_ClearCaptureIntFlag(PWM_T *pwm, uint32_t u32ChannelNum, uint32_t u32Edge);
uint32_t PWM_GetCaptureIntFlag(PWM_T *pwm, uint32_t u32ChannelNum);
void PWM_EnableDutyInt(PWM_T *pwm, uint32_t u32ChannelNum, uint32_t u32IntDutyType);
void PWM_DisableDutyInt(PWM_T *pwm, uint32_t u32ChannelNum);
void PWM_ClearDutyIntFlag(PWM_T *pwm, uint32_t u32ChannelNum);
uint32_t PWM_GetDutyIntFlag(PWM_T *pwm, uint32_t u32ChannelNum);
void PWM_EnablePeriodInt(PWM_T *pwm, uint32_t u32ChannelNum,  uint32_t u32IntPeriodType);
void PWM_DisablePeriodInt(PWM_T *pwm, uint32_t u32ChannelNum);
void PWM_ClearPeriodIntFlag(PWM_T *pwm, uint32_t u32ChannelNum);
uint32_t PWM_GetPeriodIntFlag(PWM_T *pwm, uint32_t u32ChannelNum);

使用特权

评论回复
16
Harvard| | 2015-1-26 18:58 | 只看该作者
好东西 有空要玩一玩

使用特权

评论回复
17
tianguilan| | 2015-1-26 22:18 | 只看该作者
好东西,正在做这方面的工作,学习了

使用特权

评论回复
18
mintspring| | 2015-2-28 07:35 | 只看该作者
这个有趣,我要试试

使用特权

评论回复
19
lovecat2015| | 2015-3-25 20:21 | 只看该作者
有这么快吗,感觉有点吹嘘的感觉

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

29

帖子

0

粉丝