gpt4 book ai didi

c - PIC - RB7 有值(value)吗?

转载 作者:行者123 更新时间:2023-11-30 14:28:59 26 4
gpt4 key购买 nike

我读取了端口 RB7,并在 if a 中检查该值。如果 RB7 上有输出,我希望芯片上的 LED 亮起(LED D1),但即使没有任何东西连接到 RB7,它也会一直燃烧。我做错了什么?这就是 PIC 18F4550,它是用 mplab v8.63 和 C18 编译器编写的。

void main (void) 
{
TRISD = 0x00; // PORTD als uitgang
TRISB = 0b00110000; // RB4 en RB5 als ingang

RCONbits.IPEN = 0; // prioriteit uit
INTCONbits.GIE = 1; // enable interrupt
INTCONbits.RBIE = 1; // interrupt portB aan

TRISBbits.TRISB7 = 0;
TRISBbits.TRISB6 = 0;
TRISBbits.TRISB3 = 0;

while(1)
{
_asm sleep _endasm
}
}
#pragma interrupt ISR
void ISR (void)
{
if (INTCONbits.RBIF==1)
{
if(LATBbits.LATB7 == 1) // value on RB7 ?
{
LATDbits.LATD1 ^= 1; // D2 togglen
}
}
INTCONbits.RBIF = 0;
}

最佳答案

三件事:

  1. 无论是否连接任何东西,输入始终为高电平或低电平。你有合适的上拉或下拉电路吗?
  2. 您可能需要对该输入进行反跳处理,以防止单个输入触发多个状态更改。
  3. 您似乎从未在启动时设置过输出 D1。我不会假设它默认为任何特定状态。

关于c - PIC - RB7 有值(value)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5363053/

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