共2条
1/1 1 跳转至页
我都急得不行了,单片机自动判断脉冲中的高电平宽还是低电平宽
问
我都急得不行了,谁能帮帮我
怎样才能让单片机自动判断脉冲中的高电平宽还是低电平宽,只要能够判断出来就行,在此先谢谢了 答 1: 用定时器记录两个沿之间的数值差,上升沿至下降沿的数值是高电平脉冲的宽度,下降沿至上升沿是低电平脉冲的宽度,然后比较大小即可。记得定时器的运行方向,有些MCU是加,有些则是减。不知你看明白了没有? 答 2: 能不能再说更详细一点,谢谢 答 3: 不难,不用单片机更好就是用加减计数器:
你可以设定高电平时为加法计数,低电平时为减法计数。完成一个计数周期后,看看正负情况就可以了。这样做比单片机直观,能帮助你理解chunyang同志的意思吗?
chunyang已经回答得好清楚了。除非你对单片机还没有深入理解。 答 4: 应该是低电平一般来说PIC、M51单片机自动判断脉冲中默认的宽电平是低电平宽 答 5: 路过看看,正解正电平时增计数,负电平时减计数。
一个周期后判断计数器的正负。就可以判断正负脉冲那个宽。
不过每个周期都要计数器情零,要不然累积下去的话也会失效。 答 6: 清零,对呀!我搞落了这点。
不过,我还认为用来求若干周期的平均值最好,因为计数时钟的速度比较有限,设计成求平均值的话,精度应当更高。
不过,楼主发了好多这样的帖子,不知什么时候才看到我们的意见。 答 7: 好吧,再详细一点先学会怎么起停和读写定时器。初始化定时器,然后使用IO查询的方法,首次相邻两次采样值不同时启动定时器,以后的同样条件时立刻读取定时器并再次初始化定时器,这是最简单的办法,学生初学知道这样做已经不错了,当然实际应用中此法带来的误差可能性较大,需作工艺修正或使用“输入捕捉”功能。 答 8: 如果要准确必须使用捕捉功能。
答 9: 其实这本来就是边沿检测的问题其实用边沿捕捉从理论上说是精度最高的,但是再怎么高也要靠系统时钟的,而且一般要有PWM接口的单片机才有边沿捕捉功能。所以为了简单起见,桐儿姐姐你还是用简单计数吧。偶就做过这方面的工作,用2051判断过矩形波,那可是高低脉冲都要判断的,我就用引脚电平检测加计数。后来我在另一个课题中又用到,我是用CPLD计数的,两者效果都不错。而且在CPLD中可以用语言表述边沿检测的,可是既对上升沿检测,又对下降沿检测,其综合效果更高低电平检测是一致的。 答 10: 楼主看明白了吗?怎么还在别的坛子里问呢? 答 11: 中断就是设置边沿触发,进中断,记数。
怎样才能让单片机自动判断脉冲中的高电平宽还是低电平宽,只要能够判断出来就行,在此先谢谢了 答 1: 用定时器记录两个沿之间的数值差,上升沿至下降沿的数值是高电平脉冲的宽度,下降沿至上升沿是低电平脉冲的宽度,然后比较大小即可。记得定时器的运行方向,有些MCU是加,有些则是减。不知你看明白了没有? 答 2: 能不能再说更详细一点,谢谢 答 3: 不难,不用单片机更好就是用加减计数器:
你可以设定高电平时为加法计数,低电平时为减法计数。完成一个计数周期后,看看正负情况就可以了。这样做比单片机直观,能帮助你理解chunyang同志的意思吗?
chunyang已经回答得好清楚了。除非你对单片机还没有深入理解。 答 4: 应该是低电平一般来说PIC、M51单片机自动判断脉冲中默认的宽电平是低电平宽 答 5: 路过看看,正解正电平时增计数,负电平时减计数。
一个周期后判断计数器的正负。就可以判断正负脉冲那个宽。
不过每个周期都要计数器情零,要不然累积下去的话也会失效。 答 6: 清零,对呀!我搞落了这点。
不过,我还认为用来求若干周期的平均值最好,因为计数时钟的速度比较有限,设计成求平均值的话,精度应当更高。
不过,楼主发了好多这样的帖子,不知什么时候才看到我们的意见。 答 7: 好吧,再详细一点先学会怎么起停和读写定时器。初始化定时器,然后使用IO查询的方法,首次相邻两次采样值不同时启动定时器,以后的同样条件时立刻读取定时器并再次初始化定时器,这是最简单的办法,学生初学知道这样做已经不错了,当然实际应用中此法带来的误差可能性较大,需作工艺修正或使用“输入捕捉”功能。 答 8: 如果要准确必须使用捕捉功能。
答 9: 其实这本来就是边沿检测的问题其实用边沿捕捉从理论上说是精度最高的,但是再怎么高也要靠系统时钟的,而且一般要有PWM接口的单片机才有边沿捕捉功能。所以为了简单起见,桐儿姐姐你还是用简单计数吧。偶就做过这方面的工作,用2051判断过矩形波,那可是高低脉冲都要判断的,我就用引脚电平检测加计数。后来我在另一个课题中又用到,我是用CPLD计数的,两者效果都不错。而且在CPLD中可以用语言表述边沿检测的,可是既对上升沿检测,又对下降沿检测,其综合效果更高低电平检测是一致的。 答 10: 楼主看明白了吗?怎么还在别的坛子里问呢? 答 11: 中断就是设置边沿触发,进中断,记数。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |