发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
[问答] PIC32MZ输出未保持锁存
116 PIC32 ISR 定时器
分享
我有20个输出是由PIC32 MZ2048 EFM144控制。我在一个特定的序列中打开和关闭它们在一个大约1kHz的定时器ISR中。每个期望的输出应该是固定的方波。我遇到的问题是,11个输出正像预期的那样以一致的完美方波工作,但是其他9个输出则不能始终如一地工作。对于不能正常工作的9,它们正在进行它们应该进行的转换,但是在3uS之后,它们将恢复到以前的状态,直到下一个转换(或2或3个转换)。范围输出的图片附有“工作”波形顶部和非工作在底部。它发生在高和低转变。当他们在做的时候,我无法发现任何模式,但是在10个到1个30个转变中大约有1个。所有20个代码都是相同的,它们都是以相同方式初始化的。我用门闩把它们打开或关上。所有20个设备的硬件也是一样的,似乎是由端口来工作的。端口B有7个7工作,端口F有2的2工作,C端口有2的2工作。D端口有0个7的工作,端口G有0个1,端口J是1的0。在11个工作中,9个是模拟能力引脚(设置为数字模式)。在9个不工作的引脚中,只有1个是具有模拟能力的引脚(也设置为数字模式)。工作引脚:B6、B9、B10、B11、B12、B14、B15、C13、C14、F0、F1、非工作引脚:D4、D6、D7、D9、D12、D13、D14、G13、J10它驱动着我。我错过了什么?谢谢,赖安
0
2019-11-7 09:27:24   评论 分享淘帖 邀请回答

相关问题

6个回答
因为您没有提供任何代码,所以假设它是硬件问题。事实上是这样。它最有可能是一个读修改写问题。问题是哪一个。把你写在锁存器或端口上了吗?你的写作怎么样?直接登记?图书馆的电话?Y集和Y清除寄存器?
2019-11-7 10:02:02 评论

举报

谢谢你的快速回复。我将尝试用一个简化的代码重新创建这个问题,这样我就可以在这里发布它。我正在写定时器中断中的LATX。LADD6,LATD6=1;
2019-11-7 10:08:01 评论

举报

谢谢你们的输入。我仔细检查了一下,所有的PPS都正确地设置为Harmony。是的,最高优先级编号的中断(最高优先级编号是最高优先级,对吗?是写lat的那个。它可能正在进行另外3个低优先级编号的中断,但它们不改变LAT,并且lat不从主控制环路改变。对于嵌套的中断情况,我需要做些什么不同的事情吗?有一个从高优先级ISR读取和设置的易失性变量。我创建了一个新项目来发布这里,它使用相同的和声配置,并且代码的简化版本只有一个中断,但是问题不存在。我猜这排除了硬件和协调配置的可能性。下面是实际项目中ISR的简化版本,仍然导致问题:再次感谢您的帮助。
2019-11-7 10:52:29 评论

举报

如果PORTB或PORTJ被写入到较低优先级中断,或者主循环,则不能使用ObjtButsOrjJBIT。必须使用SET、IV和CLR寄存器。(我忘了XC32的名字)那些寄存器方便地没有位字段(暗示到微芯片)。你需要自己做或者问问他们。看看是否有帮助。你可以说这在PIC10-24中是可行的,那些会有位Opcode,MIPS没有。手术不是原子的
2019-11-7 11:08:14 评论

举报

一旦从一个中断进行所有更改,并且改变LAT的过程不能被其他ISR中断,就可以了。但是,最好还是使用SET和CLR寄存器。不是:你可以做,而是你可以做。这些是原子操作,在某种意义上,中断不能在操作中间发生。
2019-11-7 11:20:22 评论

举报

你们真是棒极了。这似乎是问题所在,为什么这个问题会出现在港口的基础上。我需要清除整个应用程序中的锁存器。看起来我知道接下来几天我在做什么,再次感谢。
2019-11-7 11:33:19 评论

举报

只有小组成员才能发言,加入小组>>

75个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /5 下一条

快速回复 返回顶部 返回列表