gpt4 book ai didi

c - 为什么这个 PIC 代码不点亮我的 LED?

转载 作者:太空宇宙 更新时间:2023-11-04 04:02:44 24 4
gpt4 key购买 nike

以下代码不会将我的 PIC18F14K50 上的任何引脚设置为高电平,但它再简单不过了!

#include <pic18.h>
#include <htc.h>

void main(void)
{
// Set ALL pins to output:
TRISA = 0;
TRISB = 0;
TRISC = 0;

// Set ALL pins to high:
LATA = 0b11111111;
LATB = 0b11111111;
LATC = 0b11111111;

// Leave pins high and wait forever:
while (1);
}

我正在使用 MPLAB v8.43 和 Hi-Tech ANSI C 编译器。

逻辑探针显示除 VUSB 和 MCLR 外没有任何引脚为高电平。

有什么想法吗?

最佳答案

至少一些引脚可以配置为模拟输入。

来自该设备的数据表

The operation of pin RA4 as analog is selected by setting the ANS3 bit in the ANSEL register which is the default set-ting after a Power-on Reset.

如果您不设置 ANSEL 寄存器,则该引脚不能用作输出,因为它被配置为模拟输入。

这适用于所有可以作为A/D输入的管脚,这并不涵盖您拥有的所有管脚。

再一次,我没有在您的代码中看到任何配置位设置。该设备例如有 2 个不同的指令集,您必须至少在配置位中指定您正在使用的指令集。

您可以尝试将其添加到代码的顶部,紧接在包含之后:

// Configuration BITS setup
__CONFIG(1, FOSC_INTIO2 & XINST_OFF);
__CONFIG(2, WDTEN_OFF & PWRTEN_ON);
__CONFIG(3, MCLRE_OFF);

关于c - 为什么这个 PIC 代码不点亮我的 LED?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9937605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com