在许多语言中,例如C ++,拥有大量不同的源文件是正常的,但似乎PIC单片机程序经常出现这种情况 - 至少没有任何教程或书籍已经读过了。
我想知道我如何拥有一个源(.c)文件,其中包含一系列例程,全局变量和可以由我的main.c文件使用的定义。这甚至可能吗?
感谢您的建议!
答案 0 :(得分:3)
PIC开发绝对可以实现。从代码和数据的角度来看,大小肯定是一个问题,但它仍然只是C代码意味着C规则的大多数(参见异常的编译器文档),包括有多个源文件被编译并链接到单个输出(通常。 hex文件)。例如,在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)。我没有测试过这段代码,只是将其作为流程的一个例子。
答案 1 :(得分:1)
通常,PIC18的大多数代码都包含在其他文件中。因此,不是编译然后链接的高级技术,更常见的是包括(并包括from includes)所有代码,以便有一个单独的流进入编译器。我认为你可以在PIC18下完成它,但我从来没有花足够的时间让它工作。大多数库等设计为包含文件,而不是单独翻译的单元。
这是一种不同的心态,但有一个原因。我认为这是因为历史上需要保持尽可能小的东西。因此,基于芯片的更多宏以及更少(可链接的)库开发完成了事情。
PIC32编译器的库支持要好得多。