非常感谢
可以了
> Interrupt_setPriority (INT_PORT1, 7); // SW1 is linked to P1.1, and 0 is highest priority
此函数获取一个实际优先级字节、该字节的优先级为高(对于 MSP432) 3位、而不是低3位。 评论提到了这一点,但没有解释如何做。 您需要的公式为:
> Interrupt_setPriority…
谢谢
裸__WFI ()约为 LPM0。 要获得更高的 LPM、您需要使用 driverlib 知道的一些其他寄存器(我总是需要查找)。
我假设 LPM 问题只是您测试的一部分、因为通常情况下、在关键部分中不会涉及 LPM。
谢谢 Bruce、__WFT();工作!
是否还会像 PCM_gotoLPM0InterruptSafe ()一样将 MC_gotoLPM0InterruptSafe ()置于睡眠模式?
这是 PCM_gotoLPM0InterruptSafe。 您将注意到、它会短暂启用、然后禁用 中断。
我明白为何他们这样做,但事后看来,这可能令人感到惊讶。 如果您用"_WFI ();"替换该调用、您将获得所需的结果。 (您将获得唤醒、但不会调用 ISR。)
bool PCM_gotoLPM0InterruptSafe (void) { bool slHappenedCorrect…您提到了数据表(SLAS826G)、其中描述了器件的详细信息(P401R)。 《技术参考手册》(SLAU356I)对"P"系列进行了更全面/更全面的描述、其中介绍了寄存器位的用途。
非常感谢
这实际上起作用了!
我有一个小问题、现在我正在从 TI 网站上的 prof Valvano 讲座中学到、当然、我也在查看 MSP432数据表、Launchpad 用户指南、我在这里真正缺少的是编程指南
为了更清楚、这是我第一次知道我可以使用 P1->IFG 指向端口1清除标志寄存器上的某些引脚(我用于 driverlib、例如 GPIO_clearInterruptFlag…
你不能。 它们都连接到同一个矢量(PORT1_IRQHandler)、该矢量将为其中一个(或两者)调用。
您可以通过检查 P1->IFG (和/或 P1->IN、具体取决于您的应用)在 ISR 中进行区分。 类似如下:
void Port1_IRQHandler (void) { 如果(P1->IFG & BIT1){// S1 (P1.1)被触发? // S1材料…器件型号…
《MSP432P4技术参考手册》(文档编号 SLAU356I)第12.2.3节介绍了 DIR 寄存器的操作。 1位配置输出、0位配置输入。
例如,用 "P1->DIR &=~BIT4将 P1.4设置为输入位4为0;"
感谢您的回复
当然0x07 =7==0111、但我不会展示使 引脚的 DIR 变为1或0的机制、
1)我一次过二进制{0},1,1,1 }对应于{BIT0,BIT1,BIT2 },但这不起作用,因为0111中还有1个位
1) 1)如果我使用了我认为简单的 P1 -> DIR |= BIT0; 这如何将 DIR 设置为0。
在 c 中 ,DIR =(x || 1);将 DIR…
0x07是十六进制数、与十进制数7和二进制数0111相同。
您可以通过将其 DIR 寄存器位设置为1将引脚配置为输出。 P1->DIR 示例将引脚 P1.0、P1.1和 P1.2设置为输出(而不更改其他引脚)。 更常见的说法是:
>P1->DIR |=(BIT0 | BIT1 | BIT2);// P1.0、P1.1、P1.2作为输出
我怀疑您的程序没有达到您的期望…
您好、Jacob、
MSP432P401R 具有 FLCTL 和 SYSCTL 模块、而存储器较高的 MSP432P4111具有 FLCTL_A 和 SYSCTL_A 模块。
此致、
James
器件型号:MSP432P401R…
您好、Jacob、
MSP432P401R 具有 FLCTL 和 SYSCTL 模块、而存储器较高的 MSP432P4111具有 FLCTL_A 和 SYSCTL_A 模块。
此致、
James
器件型号:MSP432P401R…
您好、Jacob、
这个问题的答案并不简单明了。 与在数据表中提供擦除间隔的最大累积编程时间的 MSP430器件不同、我在 MSP432数据表或 TRM 中找不到该类型的信息。 我确实在数据表的表5-47中找到了一个有趣的参数、尽管它称为 NMAX_PGM、这是完成程序运行所需的最大脉冲数。 这似乎因器件而异、因此该值存储在 TLV 数据中。
无论如何、我想强调使用 DriverLib…
器件型号:MSP432P401R
大家好…
您好、Jacob、
这个问题的答案并不简单明了。 与在数据表中提供擦除间隔的最大累积编程时间的 MSP430器件不同、我在 MSP432数据表或 TRM 中找不到该类型的信息。 我确实在数据表的表5-47中找到了一个有趣的参数、尽管它称为 NMAX_PGM、这是完成程序运行所需的最大脉冲数。 这似乎因器件而异、因此该值存储在 TLV 数据中。
无论如何、我想强调使用 DriverLib…