完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我正在写一个代码来计算信号的频率。我正在用PIC24F16KA102工作在8 MHz(内部时钟),并且我使用中断来测量两个信号峰值之间的时间。在消息的结尾,我发布了我的代码,但是我会一步一步地解释它。我配置定时器2使它与PR2周期寄存器匹配,每1个我们:定时器2的预分频器1:1,然后寄存器每0.25us递增一次,PR2必须设置为4。INT0的优先级必须大于T2,因为INT0必须大于T2。必须在最后一个峰值停止time2。在第一个峰值产生It0中断,这个事件启动Time2。另一个中断(T2)用于微秒(CUS)和毫秒(CMS)的计数。当到达最后一个峰值时,条件if(cus>0|cms>0)被验证,因此我暂时停止计时器,并在preCus和preCms变量上“保存”测量的时间。在main()中,我计算频率(可变频率)并用Lcd4函数显示它。ISR的执行没有问题,并且我看到cms和cus正在增加,但我不知道为什么(cus>0|cms>0)的条件没有被验证。问题在哪里?
|
|
相关推荐
10个回答
|
|
只是附注,include
|
|
|
|
我使用了这种方法,但是我的教授给我建议使用中断。他说,这不是一个正确的方式来做它而不使用中断来做这个计数。我不同意他的观点,但他是命令我(和他一起写论文)的人。你的意思是把这个循环放进去吗?变量C每增加1个。我的教授反对这一点!但是,我将变量c的当前值保存在INT0中断(初始峰值和最终峰值)处,这样做会有所不同,你的意思是这样吗?(FRQ=1/(C2-C1),其中C1和C2是各自中断处的C值)。
|
|
|
|
如果这是一个论文,那么(在我看来)工作应该做得适当,以表明你已经掌握了正在使用的工具。还有你为什么不使用输入捕获外围设备-这正是它设计的任务类型:输入引脚上两个脉冲之间的时间。您可以将捕获和中断设置为每隔几个脉冲,然后从中开始工作,这样中断处理就不会过多(与代码必须做的其他工作相比)。苏珊
|
|
|
|
这篇论文不是关于微控制器的,是一篇关于电磁学领域的论文,我使用微控制器来完成特定的任务。在页面的末尾,我发布了代码,当第二个脉冲到达时,我将IC1BUF的内容保存到经过的变量上,使用ovfTMR2,我可以知道是否存在定时器2的一些溢出。在Proteus的模拟中,它工作得很好,并且足够精确,但是如果我亲自尝试代码,它工作起来但不准确。例如,我用NE555产生大约489赫兹的信号,但是在显示器上,我看到了大约509~520Hz的频率。问题是代码还是可能在电路上?为什么在模拟中没有错误?谢谢。
|
|
|
|
嗨,在Proteus模拟器中,没有来自开关电源或其他EMC源的噪音,这些噪音可以通过传感器布线或您在真实硬件中布置的任何布线来接收。您可以将示波器应用于您要测量的信号。多重测量,只要微控制器能够,并且计算多个测量中的平均频率。或者通过将固定数量的测量相加和分割。或者安排运行的平均计算。迈西尔
|
|
|
|
我在示波器上分析了信号,但它足够“干净”。如果所有测量结果都不准确,那么平均值又有多大用处呢?
|
|
|
|
我观察到IC1的中断也没有信号产生(引脚没有连接),为什么?即使假设有噪声,中断也可能如此敏感吗?
|
|
|
|
文斯,我随意使用PIC24H128GP502来做触摸屏显示的CMS,它的效果很好。另外,我需要一个从DC到1MHz的频率计数器。我已经尝试过更改通知和现在输入捕获(没有DMA),这两种方法都不能使我远远超过70KHz。我在查看范围跟踪,这两种方法都有太多的延迟。几年前我看到过50MHZ计数器的其他帖子,但是他们的分数代码是汇编的。有什么想法吗?谢谢
|
|
|
|
我以前从未使用过PICC编码,但我可以告诉你,使用ARDUIONC++,这是:(CuS & Gt;0πCMS & Gt;0)可能需要这样:如果(CuS & Gt;0){(CMS & Gt;0)),如果你所说的是“如果CU大于零,或者CMS大于零”。在没有括号的情况下,ω变为OR函数,如也许规则C是不同的?我不知道。而且,你不需要检查中断标志是否被设置为你的ISR的一部分。如果你进入ISR,就保证会被设置。
|
|
|
|
谢谢你的澄清。我不能让ARDUIONC++代码在不分离每个条件的情况下正常工作,但我绝对不是C程序员。:)
|
|
|
|
只有小组成员才能发言,加入小组>>
5280 浏览 9 评论
2053 浏览 8 评论
1966 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3228 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2275 浏览 5 评论
812浏览 1评论
706浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
645浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
704浏览 0评论
600浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-9 10:46 , Processed in 1.338760 second(s), Total 95, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号