Tag: xc8

使用带有gpio引脚的xc8编译器在C中初始化驱动程序

可以说我有一个驱动程序“foo.h”和“foo.c”实现。 驱动器与微控制器上的gpio引脚交互。 在Arduino中,每个GPIO引脚都有自己的引脚号(只是一个整数)。 然后,您可以使用函数initFoo(1)或initFoo(2)初始化foo,以选择要使用的引脚。 在Mbed在线c ++编译器中,可以使用DigitalIn或DigitalOut对象控制每个GPIO。 在我也熟悉的JAL(Just Another Language)中,他们使用alias关键字。 alias x is pin_D3 — the gpio pin called x used by the library pin_D3_direction = output include foo — jal doesn’t use header files. foo_init() 如何使用Microchip xc8 c编译器实现类似function? 我使用define关键字尝试了JAL方法,但编译器不知道’x’是什么。 它说未定义的标识符’x’……? #define x PortDbits.RD0 #include “foo.h” #foo_init();

使用XC8接收有关plib I2Cfunction的“未定义符号”错误

嘿那里StackOverflow! 我的问题涉及在下面粘贴的程序中报告的错误。 目标器件是PIC12LF1552 ,它上面有一个串行外设,我假设它可以与Microchip的XC8编译器提供的库一起使用。 互联网上的一些消息人士表示,只有PIC18系列中的高端设备才支持库函数,其他消息来源表示库函数运行良好。 所以我决定不想从头开始重写I2C函数,也不想为这个项目编写任何数量的程序集。 因此,我决定使用随附的XC8外设库。 我阅读了编译器文档,了解如何获取它们(如下面的i2c.h所示)。 我知道根据文档和我见过的一些例子对这些命令进行了一些错误检查,但暂时我假设主人和奴隶都表现得很完美,所以我可以把这件事搞得一团糟地面。 我已经包含了所有相关路径,这就是为什么我认为它在编译过程中得到了这么多。 我在C语言和编译器的内部工作方面的知识水平非常有限,我只知道如何在基本级别使用这些工具,所以我可能会缺少一些基本的东西。 无论如何,当我在MPLABX v1.95中编译这段代码时,我得到了这个: :0: error: undefined symbols: _AckI2C(dist/pickit3/production\strobe.X.production.obj) _ReadI2C(dist/pickit3/production\strobe.X.production.obj) _IdleI2C(dist/pickit3/production\strobe.X.production.obj) _OpenI2C(dist/pickit3/production\strobe.X.production.obj) _StopI2C(dist/pickit3/production\strobe.X.production.obj) _NotAckI2C(dist/pickit3/production\strobe.X.production.obj) _WriteI2C(dist/pickit3/production\strobe.X.production.obj) _StartI2C(dist/pickit3/production\strobe.X.production.obj) 我无法在Google,StackOverflow或其他方面找到与我的特定上下文有关的任何相关信息(另一个人在从Microchip的传统C18编译器移植时有一个非常类似的问题,但我已经做了所有人为解决他的问题所做的一切) 。 所以我想,问题是,为什么我得到这个编译器错误,它在C语言或Microchip的实现背后的机制是什么导致了这个? /* * File: i2c.h * Author: James * * Created on July 23, 2014, 9:02 PM */ #ifndef I2C_H #define I2C_H #ifdef __cplusplus extern “C” { #endif […]