Lesen Status von Eingangs-pins auf einem PIC18

War ich in der Lage zu bekommen, Ausgänge arbeiten auf meinem PIC zu machen und kann eine Reihe von LEDs, Tanz-und ausschalten wie ich auch mit den verschiedenen output-Riegel high/low. Aber, ich habe eine Menge o Schwierigkeiten beim Lesen in den Zustand einer pin.

Siehe code unten. Ich meine config ein, und definieren Sie die TRISC als Eingang und als Ausgang TRISB. In einer Endlosschleife, ich überprüfen, um zu sehen, ob RC6 hoch oder niedrig ist, und legen Sie die gesamte B-latch auf high oder low, je nach dem Ergebnis.

#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;
}

Den code kompiliert einwandfrei mit keine Warnungen oder Fehler. Wenn mein code-Logik ist einfach die Einstellung die Riegel hoch und niedrig, das funktioniert auch, aber ich habe nicht in der Lage, erfolgreich Lesen des Status einer pin.

Irgendwelche Ideen?

Ich bin mit einem PIC18F14K50 und MPLAB v8.43 und die HiTech-ANSI-C-Compiler.

Meine verbindungen sind +5V an VDD (pin 1), VSS (pin 20) zu Boden. Ich habe +5V C6 (pin 8), und einem 100K-Widerstand und die LED vom B7 (pin 10) zu Boden. Zum Umschalten RC6, Verbinde ich/disconncet den Draht zu 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 │-
     └────────┘

InformationsquelleAutor Ozzah | 2012-04-04

Schreibe einen Kommentar