Tlačítka u PIC32 - analogové a digitální vstupy a výstupy

Ahoj, mám takovýto program.

int main(void){
  LATECLR = BIT_0;       //led1 off
  TRISEbits.TRISE0 = 0;  //led1 out

  LATECLR = BIT_1;       //led2 off
  TRISEbits.TRISE1 = 0;  //led2 out

  TRISDbits.TRISD0 = 1;   //tlacitko1 in
  TRISBbits.TRISB15 = 1;  //tlacitko2 in

  while(1){
    if(PORTDbits.RD0 == 0){LATESET = BIT_0;}     //tlacitko1
    else{LATECLR = BIT_0;}

    if(PORTBbits.RB15 == 0){LATESET = BIT_1;}    //tlacitko2
    else{LATECLR = BIT_1;}
    }
  return(EXIT_SUCCESS);
  }

pokud stisknu tlačítko 1 tak se rozsvítí led dioda. Dioda 2 trvale svítí ať dělám co dělám. Na obě tlačítka je přidán externí pullup rezistor 10k a měřením na pinu procesoru jsem ověřil správné napěťové hladiny. 0V při stisku a 3,3V při puštění. Nedokážu teda pochopit proč to druhé tlačítko nejde. Dík za pomoc.

:arrow_right: administrator: přejmenováno z "Tlačítka u PIC32"

asi bych mě poznamenat, že se jedná o procesor PIC32MX695F512H

Tak je to vyřešeno…opět to bylo mou neznalostí a postižeností atmelózou. Problém je ten, že na tom pinu 15 je i analogový vstup a ten má standartně přednost před digitálním. Je nutné tedy nastavit, že pin je digitální.

AD1PCFGSET = BIT_15;