当使用 #pragma CONFIG = WDTE OFF
时我收到一条消息:
WDTE 设置为"开",我是否希望更改它?
我确实回答是的.
我担心的是其他配置语句是否被忽略?我说不出来。 PIC 的新手。试图使LED闪光灯与PIC16F688。
我让它工作了,有点。 我确保 #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 将意味着我所有的#pragma config statements (bits) = 1
,这毫无意义。
我使用其他故障排除方法使程序和电路运行。 我想将来使用调试。 我已经阅读并重新阅读了PICkit 3指南中有关PGD
和PGC
以及在芯片上运行时钟的信息。 我的 o'scope 显示我有一个运行时钟(内部 4 MHZ)。该PIC16F688没有使用术语PGD
和PGC
,但引脚分别标记为ICSPDAT
和ICSPCLK
。 为什么调试不起作用?
有时人们在头文件中定义 OFF 并破坏杂注。
实际上,每次有人问我这个问题时都是如此,所以我99%确定这是你的问题。
切勿在杂注!!之前包含任何标头
正确的方法是:
pragma config WDTE = OFF
pragma config PWRTE = OFF
....