Ich habe ein PIC32 Ethernet Starter kit
und IO expansion board
. Ich habe ein einfaches Eingabe-Ausgabe-Programm erstellt, in dem wenn PINC2
hoch ist, dann PINC1
hoch sonst niedrig ist. Ich habe eine Schaltung, die mir eine Ausgangsspannung von 3,3 V liefert, und ich lege diese Spannung als Eingang an PINC2
. Aber es gibt ein Spannungsproblem bei PINC1
.
Wenn PINC2
niedrig, Spannung bei PINC1
= 3,276 V
Wenn PINC2
hoch ist, Spannung bei PINC1
= 2,8-2,9
Meine Frage ist, wenn die Spannung PINC2
niedrig ist, warum die Spannung PINC1
3,276 V beträgt, sollte sie 0 Volt betragen. und wenn die Spannung PINC2
hoch ist, warum die Spannung PINC1
2,8-2,9 V beträgt, sollte sie 3,276 V betragen. Ich bin wirklich verwirrt darüber. Bitte helfen Sie
CODE:
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;
}
}
}
Verbindung zur Schaltung mit 3,3-V-Ausgang
Zusätzlich zu Ihrer TRISC-Konfiguration müssen Sie möglicherweise das ANSC-Register löschen. Dadurch wird der Port in den digitalen Modus versetzt und die analogen Funktionen des Pins deaktiviert. Sie haben das genaue PIC-Modell nicht erwähnt, daher kann ich die genaue Funktionalität von RC1 nicht überprüfen. Ich bin einmal darauf gestoßen, als ich einen Pin als UART-Eingang konfiguriert habe, aber der Eingang hat den digitalen Rx nie gelesen, weil er als analoger Pin konfiguriert war. Ich würde außerdem alle anderen Funktionen von RC2 überprüfen und alle diese Funktionen als deaktiviert konfigurieren (z. B. ADC).
Benutzer323693
Flugzeug
Benutzer323693