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.

[参考译文] TM4C123GH6PM:中断优先级

Guru**** 2513185 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1319834/tm4c123gh6pm-interrupt-priority

器件型号:TM4C123GH6PM
主题中讨论的其他器件:EK-TM4C1294XL

您好!

我有一个包含两个部分的问题。 获得最精确延迟的最佳方式是什么?  

我当前正在使用嵌套的 for 循环、但它似乎是其中一些循环。 我的环路如下所示。 假设 CPU 时钟为16MHz。

空毫延迟(int t)

{

   int x、y;

   for (x = 0;x < t;x++)

      for (y=0;y < 3180;y++)

      {}

第二个问题是如何正确利用中断优先级? 我正在阅读 TM4c 数据表的第153页、除了具有0-7的优先级值之外、并未做过多解释。 它参考的是什么?

我了解 Pri0、Pri1等。 但不确定如何设置中断的优先级。

假设我要使用端口 E 的中断。 这将是(中断启用) en0和 Pri1。

优先级如何发挥作用?为什么要发挥作用? 它与什么优先级相比?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid="419815" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1319834/tm4c123gh6pm-interrupt-priority

    我当前正在使用嵌套的 for 循环、但它似乎是其中一些循环。 我的环路如下所示。 假设 CPU 时钟为16MHz。

    空毫延迟(int t)

    {

       int x、y;

       for (x = 0;x < t;x++)

          for (y=0;y < 3180;y++)

          {}

    [/报价]

    为什么不能 SysCtlDelay ()。 如果调用  SysCtlDelay (1)、那么它花费三个 CPU 周期来执行。 如果 SysCtlDelay (16000000 / 3)、那么它将给出一秒钟的延迟。  

    [quote userid="419815" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1319834/tm4c123gh6pm-interrupt-priority

    我了解 Pri0、Pri1等。 但不确定如何设置中断的优先级。

    假设我要使用端口 E 的中断。 这将是(中断启用) en0和 Pri1。

    优先级如何发挥作用?为什么要发挥作用? 优先级是它将自身与另一个

    [/报价]

    可以使用 IntPrioritySet()配置不同的中断优先级。 另请参见 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\interrupts\interrupts.c example。 这个例子说明了如何使用  IntPrioritySet()为不同的优先级配置不同的 GPIO 端口。