La lecture de l'état des broches d'entrée sur un PIC18

J'ai été en mesure d'obtenir les sorties de travail sur mon PIC et peut faire un tas de Led de danse sur et en dehors comme je l'ai mis de sortie différents verrous haut/bas. Cependant, je vais avoir beaucoup o difficulté de lecture dans l'état d'une broche.

Voir le code ci-dessous. J'ai configuré ma config, et de définir les TRISC en entrée et TRISB en sortie. Dans une boucle infinie, je vérifie pour voir si RC6 est élevé ou faible, et de définir l'ensemble B loquet haute ou basse en fonction du résultat.

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

Le code se compile bien avec pas d'avertissements ou d'erreurs. Si ma logique de code est tout simplement le réglage de verrous haut et bas, alors, qui fonctionne très bien, mais je n'ai pas réussi à lire l'état d'une broche.

Des idées?

Je suis en utilisant un PIC18F14K50 et MPLAB v8.43 et le HiTech Compilateur C ANSI.

Mes connexions sont de +5V à la DMV (broche 1), VSS (broche 20) sur la terre. J'ai de +5V à C6 (broche 8), et une résistance de 100K et a B7 (pin 10) sur la terre. Pour basculer RC6, je me connecte/disconncet le fil à 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