打印
[DemoCode下载]

用M0518 timer计数 PB15 高电平持续时间

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

实际上这是一个接外部ADC芯片ICL7135的驱动程序,MCU输出一个250K的PWM信号作为ICL7135的时钟源, PB15接到ICL7135的busy管脚,“busy”输出端(ICL7135的21脚)高电平的宽度等于积分和反积分时间之和。ICL7135内部规定积分时间固定为10001个时钟脉冲时间,反积分时间长度与被测电压的大小成比例。如果利用单片机内部的计数器对ICL7135的时钟脉冲计数,利用“busy”作为计数器门控信号,控制计数器只能在busy为高电平时计数,将这段busy高电平时间内计数器的内容减去10001,其余数便等于被测电压的数值。
    当busy上升沿信号触发M0518 PB15中断后,MCU启动timer 的 计数功能开始计数,等busy下降沿再次触发外部中断时,停止timer 计数,这就可以算出busy高电平时间内MCU输出到7135的时钟脉冲个数了; timer时钟设为25M, PWM输出250K hz波形,timer获取的计数值除以100刚好是PWM输出的周期个数;

TIMER_CaptureBothEdge.rar

393.09 KB

沙发
Nu_Micro|  楼主 | 2016-7-5 14:48 | 只看该作者
程序放在  M0518BSP_CMSIS_v3.00.002\SampleCode\StdDriver  下编译

使用特权

评论回复
板凳
捉虫天师| | 2016-7-5 20:42 | 只看该作者
这个测量一个电平持续的时间通常就是用这个捕捉功能实现的。

使用特权

评论回复
地板
goodluck09876| | 2016-7-6 13:53 | 只看该作者
顶!

这个资料非常的好!

谢谢!

使用特权

评论回复
5
orangebanana| | 2016-7-6 21:54 | 只看该作者
这个是不是主要实现的是捕捉功能呢

使用特权

评论回复
6
Roderman_z| | 2016-7-7 15:45 | 只看该作者
这个程序好写吗,需要好好学习一下

使用特权

评论回复
7
小葱521| | 2016-7-14 14:26 | 只看该作者
除以100 然后 减去 10001

使用特权

评论回复
8
ideafor| | 2016-7-14 16:06 | 只看该作者
用定时器能够实现计算高电平的时间

使用特权

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

本版积分规则

16

主题

29

帖子

0

粉丝