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**** 2460850 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/654303/tm4c123gh6pm-need-help-with-packaging-my-functions-properly

器件型号:TM4C123GH6PM

您好!

当我的代码全部位于同一个文件中时、我的代码运行良好、但当我尝试将其分成不同的.c 文件时、代码运行异常失败。 这些函数用于启用具有 uDMA 的 ADC、该 ADC 应每256个样本触发一次中断。 当我使用多个文件时、它每10个样本触发一次。 闲话少叙、这里是我在 main.c 和中包含的头文件

.c 文件

extern Int16_t ADC_OUT_0[ADC_SAMPLE_BUF_SIZE];
extern Int16_t ADC_OUT_1[ADC_SAMPLE_BUF_SIZE];
extern UINT32_t n;
extern UINT32_t g_ui32DMAErrCount;
extern UINT32_t g_ui32T人力 计数;

extern volatile uint32_t start、stop;

void UDMAERR_Handler (void);
void SysTick 处理程序(void);
void ADC0SS0_Handler (void);

void init_adc (void);
void init_peripherals (void); 

我在这些声明中有什么错误? (很抱歉、这只是一个 C 语言编程问题)

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

    您是否认为"搜索采用多个此类文件的"已知良好、供应商示例程序"(最好)对您不起作用? (据信、过去的 RDK-BLDC 和 RDK-BDC (基于电机)很好地说明了"多个文件"的"注意/处理"。

    其他-较新的-也可能存在。 K&R 书也会(有些)介绍主题。 通常-与您一样-我们会搜索此类文件、以便提高"可重用性"-仅选择最适用于"Project du Jour!"的文件 Bon Voyage...

    请注意、µDMA 的使用因其高度复杂而闻名-您尝试在混合中使用"IT"、这肯定会带来挑战。   

    "kiss"规定您可以通过将两个简单文件和小文件组合起来来"提高您的理解/能力"!    肯定比 您的"强制喂食"更容易(文件数组更复杂)-几乎可以保证您的"挣扎、延迟和沮丧...   (小山经证明是"第一次攀登"的理想之选...  Kilimanjaro -仅限稍后!)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Savo、
    首先、您能解释一下如何在256个采样后生成中断? 即使在同一文件中的所有内容都没有丢失中断吗? 根据您选择的序列发生器、可以在8个采样内生成中断。 例如、选择 SS0可让您使用(ADCSSCTL0)寄存器在1-8个采样之间生成中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没错、但 UDMA 处理连续256个采样(我没有得到 ADC 中断)、然后 UDMA 停止、我得到一个中断并再次启动 UDMA。。。。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    难道我们不应该,“看森林看树吗?”

    海报说明:"...我尝试将项目分成不同的.c 文件时、项目失败得非常严重。"    这里有一个问题,就是" 沉默"。

    抓住项目的一个有限的功能方面 (仅限)、使他远离更中心的问题、难道不是吗?

    同样、(如过去所述)"提升海报的理解/能力"-在管理多个文件方面-似乎是"真正的问题"-被"转移到"功能技术!"所掩盖了

    这是否可以被视为 "最佳、最适当的方法"、" 有效"、"解决问题"?   (我"错过了"该课程...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1、
    感谢您的建议。 我想先解决基本的"一个文件中的所有内容"功能问题、然后再转到多文件项目。 解决"一个文件"问题后、海报可以开始一次移动一个或两个外部变量到不同的文件、并查看哪些变量在创建不同的功能行为方面发挥着关键作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    海报的开场白报告说:"我的代码在同一个文件中运行得非常好..."

    因此,"单一文件更正"的必要性使帖子的"证据"消失。

    这就是我的要求——吻的规定,“大画面” (主火 先出)…… 然后(也只有那时)与那些更小的人作斗争...