Pagina 1 di 1

16f690 problema lettura stato RA3

MessaggioInviato: 28 lug 2008, 23:12
da Stephano
Salve, ho acquistato la demoboard pickit 2 della microchip, però non riesco a gestire il pulsante, ossia il led non viene comandato se il pulsante cambia stato.
Questo è uno dei tanti codici che ho provato ma non funziona, riuscite a dirmi il perché?

Codice: Seleziona tutto
#include<htc.h>
#include"delay.c"     
main(void)
{
   TRISA3 = 1;
   TRISC = 0;
   PORTC = 0;
   ANSEL = 0;
   while(1) {
      DelayMs (25);
         if (RA3==0) PORTC = 1;
         else   PORTC = 0;
                }
}


Grazie
Cordiali Saluti

Re: 16f690 problema lettura stato RA3

MessaggioInviato: 29 lug 2008, 9:39
da Paolino
Prova con
Codice: Seleziona tutto
TRISA = 8;

In questo modo dici che RA3 (e solo quella pin della porta A) è posto in input.
In alternativa, in base binaria:

Codice: Seleziona tutto
TRISA = 00001000b;


Ciao.

Paolo.

Re: 16f690 problema lettura stato RA3

MessaggioInviato: 29 lug 2008, 13:01
da Stephano
Niente da fare, saranno i resistori di pull up, come si settano?

Re: 16f690 problema lettura stato RA3

MessaggioInviato: 29 lug 2008, 13:19
da aduri
Dipende dalla logica; per esempio: se il pin RB7 del PIC e'a stato logico 1,
se lo riferisci a massa presenta 5 volt ma, se viene riferito al positivo
dell'alimentatore, esso ha stato logico di 0 (tra il + e il - quindi 0 volt).
Io uso resistenze di pull-up da 1Kohm.

Re: 16f690 problema lettura stato RA3

MessaggioInviato: 29 lug 2008, 13:32
da Paolino
Ma hai guardato il datasheet? A pagina 60 trovi le indicazioni sui pull-up. Il documento dice proprio che la porta RA3 non ha pull-up interno:
4.2.2 WEAK PULL-UPS
Each of the PORTA pins, except RA3, has an
individually configurable internal weak pull-up. Control
bits WPUAx enable or disable each pull-up. Refer to
Register 4-4. Each weak pull-up is automatically turned
off when the port pin is configured as an output. The
pull-ups are disabled on a Power-on Reset by the
RABPU bit of the OPTION register. A weak pull-up is
automatically enabled for RA3 when configured as
MCLR and disabled when RA3 is an I/O. There is no
software control of the MCLR pull-up.

Ti consiglio pertanto di porre un pull-up esterno. Io li uso da 10k, normalmente. Da 1k il consumo di corrente è eccessivo, secondo me.

Ciao.

Paolo.