在许多语言中,例如 C++,有很多不同的源文件是正常的,但 PIC 微控制器程序似乎并不经常出现这种情况——至少在我读过的任何教程或书籍中都不是这样.
我想知道如何拥有一个包含一堆例程、全局变量和定义的源 (.c) 文件,这些文件可以由我的 main.c 文件使用。这甚至可能吗?
谢谢你的建议!
在许多语言中,例如 C++,有很多不同的源文件是正常的,但 PIC 微控制器程序似乎并不经常出现这种情况——至少在我读过的任何教程或书籍中都不是这样.
我想知道如何拥有一个包含一堆例程、全局变量和定义的源 (.c) 文件,这些文件可以由我的 main.c 文件使用。这甚至可能吗?
谢谢你的建议!
这对于 PIC 开发是绝对可能的。从代码和数据的角度来看,大小当然是一个问题,但它仍然只是 C 代码,这意味着 C 规则的大多数(请参阅编译器文档了解例外情况)适用,包括将多个源文件编译并链接到单个输出(通常是 .十六进制文件)。例如,在与 main.c 不同的 C 文件中,如 test.c:
int AddNumbers(int a, int b)
{
return a + b;
}
然后您可以在头文件 test.h 中定义它:
int AddNumbers(int a, int b);
在 main.c 文件的顶部包含 test.h:
#include "test.h"
然后,您应该能够从 main.c 调用 AddNumbers(4,5)。我没有测试过这段代码,只是将它作为过程的一个例子提供。
通常,PIC18 的大多数代码都包含在其他文件中。因此,与先编译然后链接的高级技术不同,更常见的是包含(并从包含中包含)所有代码,以便有一个流到编译器。我认为你可以在 PIC18 下做到这一点,但我从来没有花足够的时间让它工作。大多数库等都设计为包含文件,而不是单独翻译的单元。
这是一种不同的心态,但这是有原因的。我认为这是由于历史上需要尽可能小。因此,使用更多基于芯片的宏和更少的(可链接的)库开发来完成工作。
PIC32 编译器的库支持要好得多。