完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的思路是这样的,给随便一个IO口接电路,电路时高低电平变化的,设k初值为0.每变换一次额高低电平,k加1.最后输出K的值.我的电路设计的高低电平变换最多只有6次.
这只是我的想法,最总怎么实现,想问问各位大神的意见,请教教我程序应该怎么写?, |
|
相关推荐
11个回答
|
|
用个I/O口,直接统计上升沿的个数就行了。
|
|
|
|
要不要用计数器/定时器呢?可以直接统计吗?
|
|
|
|
可以通过外部中断,这样在检测过程中还能处理其它事,如果还需要检测脉冲宽度的话,就需要用定时器的输入捕获了
|
|
|
|
楼上说得有理。
|
|
|
|
用个定时器,通过外部中断来检测脉冲上升沿的个数。
|
|
|
|
能给我个例子看看吗?我不太理解.
|
|
|
|
main()
{ P1IN_bit.P1 = 0; P1IN_bit.P1 = 0; unsigned char cnt_uc = 0; unsigned char temp_uc = 0; unsigned short time_us = 0; while(1) { for(time_us = 20000; time_us > 0; time_us --);//延时 if (P1IN_bit.P1 = 1 && temp_uc = 0)//检测是否有新的脉冲到来 cnt_uc++;//脉冲计数 temp_uc = P1IN_bit.P1;//脉冲上升沿判断标志 } ===================== 先找本C语言的数好好看看吧 |
|
|
|
main()
{ P1IN_bit.P1 = 0; P1IN_bit.P1 = 0; unsigned char cnt_uc = 0; unsigned char temp_uc = 0; unsigned short time_us = 0; while(1) { for(time_us = 20000; time_us > 0; time_us --);//延时 if (P1IN_bit.P1 = 1 && temp_uc = 0)//检测是否有新的脉冲到来 cnt_uc++;//脉冲计数 temp_uc = P1IN_bit.P1;//脉冲上升沿判断标志 } ===================== 先找本C语言的数好好看看吧 |
|
|
|
那个if里的=换成==
|
|
|
|
这个可以用定时器的捕获模式实现啊。参考下面的资料
style:normal;font-variant:normal;">当捕获/比较寄存器与定时器总线相连:可在满足捕获条件时,将 TAR 的值写入捕获寄存器;可在 TAR 的值与比较器值相等时,设置标志位。通过 TACCTLx 中的 CAP 选择模式,该模块既可用于捕获模式,也 可用于比较模式。用 CMx 选择捕获条件,可以禁止捕获,上升沿捕获,下降沿捕获或者上下沿都捕获。 可用 CCISx 选择捕获的输入信号源,输入信号可以来自外部引脚,也可来自内部信号,还可暂存在一个触 发器中由 SCCI 信号输出。 [1] 捕获模式 当 TACCTLx 中的 CAP=1,该模块工作在捕获模式,这时如果在选定的引脚上发生设定的脉冲触发沿 (上升沿,下降沿或任意跳变) ,则 TAR 中的值将写到 TACCRx 中。 每个捕获/比较寄存器都能被软件用于时间标记,可用于各种目的。例如,测量软件程序所用时间,测 量硬件事件间的时间,测量系统频率。 |
|
|
|
首先得知道脉冲的频率是多少
|
|
|
|
只有小组成员才能发言,加入小组>>
490 浏览 0 评论
1030 浏览 1 评论
2411 浏览 5 评论
2732 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2550 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
585浏览 9评论
587浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
695浏览 6评论
563浏览 5评论
602浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 06:53 , Processed in 1.109517 second(s), Total 100, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号