tengo un PIC32 Ethernet Starter kit
y IO expansion board
. Hice un programa de entrada y salida simple en el que si PINC2
es alto, entonces haga PINC1
alto, de lo contrario, bajo. Tengo un circuito que me da un voltaje de salida de 3.3v y estoy aplicando este voltaje como entrada a PINC2
. Pero hay un problema de voltaje en PINC1
.
Cuando PINC2
es bajo, voltaje a PINC1
= 3.276v
Cuando PINC2
es alto, voltaje a PINC1
= 2.8-2.9
Mi pregunta es cuando el voltaje PINC2
es bajo, por qué el voltaje PINC1
es 3.276v, debería ser 0 voltios. y cuando el voltaje PINC2
es alto, por qué el voltaje PINC1
es 2.8-2.9v, debería ser 3.276v. Estoy realmente confundido en esto. Por favor ayuda
CÓDIGO:
int main()
{
TRISCbits.TRISC1=0; //output
TRISCbits.TRISC2=1; //input
while(1)
{
if(PORTCbits.RC2==1)
{
PORTCbits.RC1=1;
}
else if(PORTCbits.RC2==0)
{
PORTCbits.RC1=0;
}
}
}
Enlace al circuito que da salida de 3.3v
Además de su configuración TRISC, es posible que deba borrar el registro ANSC. Esto configura el puerto en modo didital y deshabilita las funciones analógicas del pin. No mencionó el modelo PIC exacto, por lo que no puedo verificar la funcionalidad exacta de RC1. Me encontré con esto una vez cuando configuré un pin como entrada UART, pero la entrada nunca leyó el Rx digital porque estaba configurado como un pin analógico. Además, verificaría todas las demás funciones de RC2 y configuraría todas esas funciones como deshabilitadas (por ejemplo, ADC).
Usuario323693
Aeronave
Usuario323693