完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
如果你不需要花很多时间调试它,我希望你能有任何见解。我有一个MC TS的案例。我没有收到来自MC摘要的确认和决议:我使用MIWI演示工具包(DM182016-1)和MLA V2017Y03Y06的代码来开发MiWi网格。我加载了SW,让演示板按原样工作。我修改了我自己的PanCo和EngDead板的代码。我可以成功地在ED和PANCO之间传输数据。然后,当我在PANCO代码的Syc中加上“ItNo.Peee=1”时,MiWi堆栈将无限地循环大约5分钟到2HRS。用“InCON.Peee=1”,数据在PanCo和ED.之间传输OK,这个问题将发生在5分钟到2小时之后。调试表明,在一次故障中,主机被卡住,如果(MippuxUnaseTalk(ListSoist.Boad,NULL,FALSE)=TRUE)和空隙中断HISISR(无效),我添加了“ItNCON.PEI= 1”;对于MIWI Demo KIT PANCO板的代码,同样的问题发生了。这意味着低优先级中断不能用MiWi启用。栈。
以上来自于百度翻译 以下为原文 I post this so if you don't have to spend much time debugging it, and hope to hear from you if you have any insight. I have a case with MC TS on this. I have not received confirmation and resolution from MC. Summary: I'm using MiWi Demo kit (DM182016-1) and code from MLA v2017_03_06 to develop a MiWi mesh. I loaded the sw and got the demo boards working as-is. I modified the code for my own PanCo and EndDevice boards. I can transfer data between my ED and PanCo successfully. Then when I added "INTCON.PEIE = 1;" in system.c of PanCo code, MiWi stack will get in a loop infinitely about 5 minutes to 2hrs later. With "INTCON.PEIE = 1;", data were transferred OK between PanCo and ED. The issue would occur about 5 minutes to 2hrs later. Debugging shows that in one failure, host is stuck in if(MiApp_UnicastAddress(lastSource.bytes,NULL,false)==true) and void interrupt HighISR(void) I added "INTCON.PEIE = 1;" to the code for MiWI-Demo-kit PanCo board, the same issue occurred. This means low-priority interrupt can't be enable with MiWi stack. |
|
相关推荐
17个回答
|
|
|
设置PEIE对中断优先级没有任何影响,除非IPEN也被设置。你没有提到伊本,所以不清楚你在做什么。我本来希望PEIE已经被设置在演示软件中,因为大多数应用程序使用中断都需要它。
以上来自于百度翻译 以下为原文 Setting PEIE does not have any effect on interrupt priorities unless IPEN is also set. You didn't mention IPEN so it's unclear what you're doing. I would have expected PEIE to already be set in the demo software, since most applications using interrupts require it. |
|
|
|
|
|
我有iPon设置。演示板的代码不使用低优先级的ITO。它只使用高ITO,高ISR.()。
以上来自于百度翻译 以下为原文 I have IPEN set. The code for the demo board does not use low-prio intr. It uses only high intr, HighISR(). |
|
|
|
|
|
然后,听起来你是在启用一个低优先级中断源,但是没有正确地对它进行维护。
以上来自于百度翻译 以下为原文 Then it sounds like you are enabling a low priority interrupt source, but not servicing it properly. What else have you changed in terms of enabling individual interrupts? |
|
|
|
|
|
用“ItNo.Peee=1”,数据在PanCo和ED.之间传输OK,这个问题将在5分钟到2小时后发生。通过MIWI协议传输数据OK。此外,UART在接收时使用低PRI中断。这里的关键是一切都很好(MIWI数据传输和UART接收),但大约5分钟到2小时后,发生故障。到目前为止,我看到了板空闲时的失败(没有MIWI数据XFER,没有UART活动)。在调试期间,我也看到了当In CONNE.PEI= 1时的失败,并且没有为低PRI中断配置任何资源。MMC ORIG代码的演示板(没有配置为低PRI内联的资源)在我添加一行代码“InCON.Peee=1”时失败了。MC已经审查了我的代码,无法识别出什么是错误的,并且无法解释为什么“ItNo.Peee=1”会引起问题。
以上来自于百度翻译 以下为原文 With "INTCON.PEIE = 1;", data were transferred OK between PanCo and ED. The issue would occur about 5 minutes to 2hrs later. Data were transferred OK via MiWi protocol. Also, the UART is using low-pri interrupt on receive. The key here is that everything works fine (MiWi data transferring and UART receiving), but then about 5min to 2 hours later, the failure occurs. So far, I have seen the failure when the boards are in idle (no MiWi data xfer, no UART activities). During debugging, I also see the failure when INTCON.PEIE = 1, and NOT ANY resource are configured for low-pri interrupt. The demo board with MC orig code (no resource configured for low-pri intr) fails the same way when I just add this one line of code "INTCON.PEIE = 1;" MC has reviewed my code and could not identify what's wrong, and couldn't explain why "INTCON.PEIE = 1" would cause a problem. |
|
|
|
|
|
也许你偶尔会在UART上出错,但没有正确处理。
以上来自于百度翻译 以下为原文 Maybe you're occasionally getting an error on the UART that isn't being handled correctly. |
|
|
|
|
|
这是一个很好的观点,但我已经检查过了。正如我所说的:在调试期间,我也看到了当UNCON.PEI= 1时的失败,并且没有为低PRI中断配置任何资源。
以上来自于百度翻译 以下为原文 That's a good point, but I've checked that. Like I said: During debugging, I also see the failure when INTCON.PEIE = 1, and NOT ANY resource are configured for low-pri interrupt |
|
|
|
|
|
原始的、未修改的演示代码没有设置PEIE吗?
以上来自于百度翻译 以下为原文 Does the original, unmodified demo code not set PEIE? |
|
|
|
|
|
不,它没有设置PEIE。它也不成立。
以上来自于百度翻译 以下为原文 no, it does not set PEIE. it does not set INTCONbits.GIEL either. |
|
|
|
|
|
您好,您需要检查MIWI代码和文档。可能有一些关键部分不能接受中断。您需要禁用/启用MiWior关键部分的中断,也许您的中断太长……
以上来自于百度翻译 以下为原文 Hi, You need to check MiWi code and documentation Probably there are some critical sections where interrupts cannot be accepted. You need to disable / enable interrupts around the critical sections of MiWi OR maybe your interrupt is too long.... Regards |
|
|
|
|
|
好点。我检查了所有这些。MIWI DOC实际上是不存在的。MIWI堆栈是图书馆格式的。只有几个配置文件源文件。我把整个项目交给MC来审查。MC没有发现任何解决办法。对于中断,正如我所说的:在调试期间,我也看到了当InCON.Peee=1时的失败,并且没有为低PRI中断配置任何资源,即最小的配置失败。
以上来自于百度翻译 以下为原文 good points. I checked all of that. MiWi doc is virtually non-existent. MiWi stack is in library format. there are only a few source files for configuration. I sent my entire project to MC to review. MC has not found any resolution. for the interrupt, like I said: During debugging, I also see the failure when INTCON.PEIE = 1, and NOT ANY resource are configured for low-pri interrupt that is the minimal configuration that fails. |
|
|
|
|
|
如果你这样做,你能检测它是否真的做了低优先级程序的向量?您可以在其中放置断点或LED触发器。
以上来自于百度翻译 以下为原文 If you do that, can you detect if it actually does vector to the low priority routine? You could put a breakpoint or an LED toggle in there. |
|
|
|
|
|
它不到低PRI ISR。当它失败时,它被困在下面的(1)循环中://现在触发传输物理PultSuxTrAMADDR(Read EnthTxnMtRigg,i);MLA V2017Y03Y06)。我向MC展示了这个,但是没有得到任何评论。
以上来自于百度翻译 以下为原文 It does not go to low-pri ISR. When it fails, it's stuck in the while(1) loop below: // now trigger the transmission PHYSetShortRAMAddr(WRITE_TXNMTRIG, i); #ifdef VERIFY_TRANSMIT t1 = MiWi_TickGetMs(); while(1) { if( RF_INT_PIN == 0 ) … This code segment is in drv_mrf_miwi_mesh_24j40.c (from MLA v2017_03_06). I showed this to MC, but have not got any comment back. |
|
|
|
|
|
你能验证你的外部中断是否只设置为负边,而不是为两者设置。
以上来自于百度翻译 以下为原文 Can you verify if you external interrupt is only set for negative edge and not for both. |
|
|
|
|
|
你是在询问MIWI模块的中断边缘还是其他低优先中断?
以上来自于百度翻译 以下为原文 Are you asking about interrupt edge of MiWi module or of other low-prior interrupt? |
|
|
|
|
|
中断MIWI模块。你能禁用ViFixIdS传输并检查它是否被解决了?
以上来自于百度翻译 以下为原文 Interrupt for Miwi module. Can you disable the VERIFY_TRANSMIT and check if that is resolved? |
|
|
|
|
|
它是负边。我使用的是PIC18F46J50,所以它没有两个边。我正在测试VeluffyStaseDebug,并将在明天发布结果。但是,DababdLVIFIFY传输将阻止“…收发器在块过程中传输数据……”,并且不能“检测传输失败”。Update:TestValuffySyDead禁用遭遇同样的故障。BTW,特哈斯,您在Primo路吗?
以上来自于百度翻译 以下为原文 It's negative edge. I'm using PIC18F46J50, so it does not have both-edge. I'm testing with VERIFY_TRANSMIT disable, and will post result tomorrow. However, disabling VERIFY_TRANSMIT will prevent "...transceiver to transmit data in a block procedure...", and cannot "detect transmission failure." update: test with VERIFY_TRANSMIT disable encounters the same failure. BTW, Tejas, are you at Plano Road? |
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:54 , Processed in 1.136535 second(s), Total 104, Slave 87 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1590