This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2355:简单的 C 问题

Guru**** 2538950 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/906385/msp430fr2355-simple-c-question

器件型号:MSP430FR2355

作为一名硬件人员、我确信在编码方面、我做的很多事情都不正确、即使它们看起来"正常工作"。  我的问题是在以下代码块中(请注意 wr)、是否可以在下一个代码块中重复使用 wr 以使线路下环路、而不是重新引入另一个变量?  我有很多用于循环类型活动的内容、在我看来、一旦循环完成、下一个循环在重新分配中有目的、这是一件可以做的事情...

Adv = 0;
对于(wr = 4;wr < 8;wr ++){
IF (永久性_Info[wR]="0")
Adv++;
}
如果(Adv == 4){
Adv = 0;
SYSCFG0 = 0xA501;//解锁对信息存储器的写入
对于(电源= 4;电源< 8;电源++)
永久性信息[wr]= rxID[wr - 4];
SYSCFG0 = 0xA503;//锁定写入信息存储器

谢谢你

Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然、请注意 for 循环中的第一个表达式是用于启动、任何先前的 wr 值都被抛出位桶中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Keith。。。。

    我的想法。  现在假设我们是异步从 ISR 唤醒的。  在 for 循环中、具体而言、是否可能会出现代码唤醒完成所有 main 然后返回到周围的问题、或者 for 循环是否会在继续之前始终完成?

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不确定这是什么意思、但 ISR 会保存堆栈内容和当前程序计数器。 当 ISR 返回时、程序的状态应该恰好在它离开的位置进行挑选。

    显然,这不*适用于全局变量。 如果您为循环计数器使用全局变量、并且 ISR 与该全局变量发生多路复用、则可能会过早结束循环-或重新启动循环。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。

    会考虑到这一点.....

    这是我的不良习惯之一。  我的所有变量都是在 main 的'outside’(外部)中定义的..... 这似乎不是一件好事

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    哦、当在函数内部定义时、即使使用不同的名称、而不是静态(即"auto"变量)、编译器也可以很好地为函数中的每个循环计数器使用相同的寄存器、 而且、切勿触摸记忆、除非您使用&一元运算符或稍后参考其值。