我正在使用picdem 18F4550和C18编译器的microchip v8.63。
我将使port a设置为输入,我将在端口RA0上连接一个LDR。
如下(我想)
TRISAbits.TRISA0 = 1; <= set RA0 as input
现在我想要LDR的值(如果led亮起,电压/值),我可以说:
int colorLed = PortAbits.RA0;
现在在int类型的变量中有我的Led的值/电压。
如果我错了就纠正我。
最佳答案
听起来你想测量一个模拟电压,在这种情况下,你需要使用的引脚是AN0
,而不是RA0
您应该阅读datasheet的第21节,但总而言之,您需要使用寄存器ADCON0
、ADCON1
和ADCON2
配置A-D转换器,并阅读ADRESH:ADRESL
上的结果。
请注意,您可以使用数字输入读取LDR,但无法对其进行校准。使用模拟输入稍微复杂一些,但更灵活。