TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: pyrosster en 29 de Febrero de 2012, 18:12:39

Título: Leer multiples interruptores con CD4021 y dsPIC
Publicado por: pyrosster en 29 de Febrero de 2012, 18:12:39
Hola a todos,

Estoy intentando leer unos interruptores conectados a un CD4021, utilizando un dsPIC30f. Utilizo el compilador Mplab C30.
Como puedo leer 8 interruptores conectados a un CD4021 desde un PIC? Tengo conectado el PIC de la siguiente manera:

Data al pin RB1
Latch al pin RB2
Clock al pin RB3

(http://www.todopic.com.ar/foros/imgtiny/jaz380.jpg)

Estoy usando este codigo pero no me funciona. Podria alguien ayudarme por favor?
Código: [Seleccionar]
int main(void)
{
        TRISB = 0b00000010;
port_present = read_cd4021();
}

unsigned char read_cd4021()
{
unsigned char a,i,inport,dat;

clockPin = 0;
  latchPin = 1;
delay_us(1);
  latchPin = 0;
dat=0;
for (i=0; i<8; i++)
{
clockPin = 1; delay_us(1);
inport = dataPin;
dat <<= 1;
dat |= inport;
clockPin = 0; delay_us(1);
}
latchPin = 1;
return(dat);
}
Gracias.