我已经能够得到产出对我的工作的知情同意,并可以让一堆LED的舞蹈和关闭,因为我设置各种输出锁存器高/低。 不过,我有很多Ø困难的引脚的状态读数。
请参见下面的代码。 我建立了我的配置,并定义TRISC作为输入和TRISB作为输出。 在无限循环,我检查以查看是否RC6是高还是低,并设置整个乙锁存高或低根据结果。
#include <htc.h>
__CONFIG(1, FOSC_IRC & FCMEN_OFF & IESO_OFF);
__CONFIG(2, PWRTEN_OFF & BOREN_OFF & WDTEN_OFF);
__CONFIG(3, MCLRE_OFF);
__CONFIG(4, STVREN_ON & LVP_OFF & DEBUG_OFF);
__CONFIG(5, 0xFFFF);
__CONFIG(6, 0xFFFF);
__CONFIG(7, 0xFFFF);
void main(void)
{
TRISC = 0xFF; // input
TRISB = 0x00; // output
while (1)
{
if (PORTCbits.RC6 == 0)
LATB = 0b00000000;
else
LATB = 0b11111111;
}
return;
}
代码编译罚款,没有警告或错误。 如果我的代码逻辑是简单的设置锁高低然后工作正常,但我一直没能成功读取引脚的状态。
有任何想法吗?
我使用的是PIC18F14K50和MPLAB v8.43和高科技型的ANSI C编译器。
我的连接+ 5V到VDD(引脚1),VSS(引脚20)连接到地。 我有+ 5V至C6(管脚8),和一个100K电阻器和从LED B7(引脚10)接地。 要切换RC6,我连接/ disconncet线至C6。
┌────────┐
+5v -│ 01 20 │- gnd
-│ 02 19 │-
-│ 03 18 │-
-│ 04 17 │-
-│ 05 16 │-
-│ 06 15 │-
-│ 07 14 │-
+5v -│ 08 13 │-
-│ 09 12 │-
led -│ 10 11 │-
└────────┘