1

使用 #pragma 时,CONFIG = WDTE OFF
我收到一条消息:

WDTE 设置为 ON 我要更改它吗?

我确实回答是的。
我担心的是其他配置语句被忽略了吗?我说不出来。新话题。尝试用 PIC16F688 使 LED 闪烁。

我让它工作,有点。我确保#pragma 语句在#include 和#define 之前。接下来是#pragma不起作用的语句块。

#pragma config WDTE = 0x0
#pragma config PWRTE = 0x0
#pragma config MCLRE  = 0x0
#pragma config CP = 0x0
#pragma config CPD = 0x0
#pragma config BOREN = 0x1
#pragma config IESO = 0x1
#pragma config FCMEN =0x1

我采用十六进制方法来避免定义 ON 和 OFF 我在 RUN 下拉菜单下使用 MPBLAB 的“设置配置位”来设置位,将它们更改为十六进制。这仍然给出了WDTE,然后错误消失了,我发现了一个 PWRTE CP 错误。我发现我已将 MCLRE 设置为 1,因此将其设置为 0 我仍然收到配置错误消息,但程序运行了。
然后,我只使用了语句#pragma config CONFIG 0xFF5。我没有收到配置错误,但警告说 0xFF5 将自动截断为0xFFF.
现在一切都运行了,但是,我无法运行调试。

现在有这个问题,我想这是一个不同的线程。然而,问题出现了,配置字是如何形成的,哪些位构成了字的一部分。我试图从一些寄存器中猜测,但一无所获。很高兴知道。此外,注意 0xFFF 将字中的每个位设置为 1 意味着所有 my #pragma config statements (bits) = 1,这是没有意义的。

我使用其他故障排除方法使我的程序和电路运行。我想在将来使用调试。我已经在 PICkit 3 指南中阅读并重新阅读了PGD关于PGC在芯片上运行时钟的信息。我的示波器说我有一个运行时钟(内部 4 MHZ)。PIC16F688 不使用术语PGDPGC,但引脚分别标有ICSPDATICSPCLK。为什么调试不起作用?

4

2 回答 2

1

有时人们在头文件中定义 OFF 并打破编译指示。

实际上,每次有人问我这个问题都是如此,所以我 99% 确定这是你的问题。

永远不要在编译指示之前包含任何标题!

于 2016-07-17T00:08:59.530 回答
0

正确的方法是:

pragma config  WDTE = OFF
pragma config  PWRTE = OFF

....
于 2019-11-15T11:20:30.250 回答