PIC和XC8编译器问题

PIC和XC8编译器问题,c,compiler-construction,delay,pic,microchip,C,Compiler Construction,Delay,Pic,Microchip,我肯定我错过了一些简单而明显的东西,但我已经厌倦了寻找答案。Im使用PIC16F688和XC8编译器 编译器用户手册中说有一个延迟函数\uuu delay\u ms()。它说必须定义\XTAL\u FREQ 这是我的代码,但它不接受命令。怎么了 #include <stdio.h> #include <stdlib.h> #define _XTAL_FREQ 20000000 #include<xc.h> int main(int argc, c

我肯定我错过了一些简单而明显的东西,但我已经厌倦了寻找答案。Im使用
PIC16F688
XC8
编译器

编译器用户手册中说有一个
延迟函数\uuu delay\u ms()
。它说必须定义
\XTAL\u FREQ

这是我的代码,但它不接受命令。怎么了

#include <stdio.h>
#include <stdlib.h>

#define _XTAL_FREQ 20000000

#include<xc.h>

    int main(int argc, char** argv) {


       _delay_ms(4);

    return (EXIT_SUCCESS);
#包括
#包括
#定义频率20000000
#包括
int main(int argc,字符**argv){
_延迟时间(4);
返回(退出成功);
什么是“它不接受命令”?编译器找不到函数
\u delay\u ms()
?也许您应该使用带有两个下划线的正确名称
\u delay\u ms()


此外,为什么不使用
}
关闭主函数?这只是您的帖子或真实代码中的一个输入错误?

可能是您必须在编译器中包含或启用pic控制器库文件

在某些编译器中,需要使用ect提供控制器信息,如控制器系列和时钟频率


编译器设置似乎有问题

我发现IDE没有正确读取include文件xc.h,因此它在一行红色的线中画了一条实际上是正确的线。由于程序早期的另一个问题,它没有编译

感谢您的回复。

请包括“htc.h”

#包括
#包括
#包括
#包括
#定义频率20000000
int main(int argc,字符**argv){
_延迟时间(4);
返回(退出成功);
}

他们是对的,这个问题是旧版本的IDE遇到的。我发现使用以下工具很有帮助:

while(1){
//Invert LED state
LED = !LED;
//Delay ~1 second (4MHz Internal Clock)
_delay(1000000); //specify clock cycles directly
}

要解决此问题。

函数似乎只使用了一个下划线。使用2下划线,\u延迟\u ms(1000)

#include <stdio.h>
#include <stdlib.h>
#include <xc.h>


#define _XTAL_FREQ 20000000

int main(int argc, char** argv) {


       __delay_ms(4);

    return (EXIT_SUCCESS);
}
#包括
#包括
#包括
#定义频率20000000
int main(int argc,字符**argv){
__延迟时间(4);
返回(退出成功);
}
我希望下面的链接将帮助您学习MPLAB XC8


也许可以直接试试这个

     //Delay Definitions
     #define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
     #define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))

试着定义“被包括在内”后的含义,但不确定。谢谢你的建议。你是如何测试你的延迟发生的?4毫秒的延迟太少了。我还没走那么远。这只是一个随机数,直到我知道更多。我正在写代码,但实际的延迟取决于我正在做的一些实验。该代码将为电容器组充电,然后将电荷释放到一些Nycrome导线中。您好,感谢您的回复。您提到的两件事都是上述代码中的打字错误。实际的ode确实有_uu,并且它是关闭的。错误是它没有编译,IDE(MPLab X)的实际错误是“无法解析标识符”。那是什么问题?解决办法是什么?
     //Delay Definitions
     #define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
     #define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))