TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: er_clemen en 19 de Agosto de 2003, 22:57:00

Título: Comando SHIFTIN
Publicado por: er_clemen en 19 de Agosto de 2003, 22:57:00
Hola amig@s:

A ver si me podeis ayudar, porque estoy en plena tesis y voy contrareloj:

Resulta que tengo 2 registros paralelo-serie 74HC165 conecatdos en cascada.

Para que el PIC lea los datos a sus entradas en serie (utilizo las 8 del 1º y las 3 de menor peso del 2º, en total 11), utilizo el comando SHIFTIN.

El caso es que funciona bien siempre y cuando le transfiera al PIC 8 bits, si le especifico 9 por ejemplo, lo que hace es que continua leyendo 8 y me desplaza 1 bit a la izquierda.

¿Que puede estar ocurriendo?

MUCHAS GRACIAS.
Título: RE: Comando SHIFTIN
Publicado por: hexapodo en 20 de Agosto de 2003, 00:42:00

hola,

tenés que mirár el foro de "Hagamos un PLC con PIC!!" en la sección de proyectos, ahí encontrarás un ejemplo del manejo de registros de corrimiento con el comando Shiftin, tabien está ese mismo ejemplo en C y en ensamblador.
Título: RE: Comando SHIFTIN
Publicado por: MGLSOFT en 20 de Agosto de 2003, 12:58:00
Deberias publicar tu programa y circuito aqui, para que podamos ayudarte.
pero de todos modos revisa si no tienes declarado un BYTE en vez de un WORD, que es lo que necesitas para almacenar la cantidad de bits que recibiras.
Por otro lado siempre, por mas que no creas necesario, levanta los 16 bits de los dos integrados, y luego haces un AND con los que no tienes cableados.

MGL
Título: RE: Comando SHIFTIN
Publicado por: er_clemen en 21 de Agosto de 2003, 17:56:00
Hola amig@s:

Os dejo adjunto el código para que dispongais de mas información para poder ayudarme. He intentado escanear el circuito, pero aun comprimiendo supera el tamaño para adjuntar.

Se trata de 2 74HC165 conectados en cascada a cuyas entradas paraleo A...F conecto un micoswitch por donde introduzco "1" o "0". Ya os comentaba que funciona bien sólo si envio 8 bits, por lo que creo que el problema estará a nivel de soft.

Como veis, para comprobar su funcionamiento he hecho un bucle WHILE...WEND con un led que parpadea cada segundo por cada valor numérico de 1 que inroduzco en binario con el microswitch y que envio en serie al PIC. POr lo que puedo contar el nº de veces que parpadea y asi saber si el valor que envio serie es correcto.

Publicaré el proyecto completo cuando lo tenga terminado.


UN MONTON DE GRACIAS.
Título: RE: Comando SHIFTIN
Publicado por: er_clemen en 21 de Agosto de 2003, 19:34:00
HOLA AMIG@S:

YA LO HE SOLUCIONADO, ERA UN PROBLEMA DE HARDWARE:

UN ERROR EN LA CONEXION EN CASCADA DE LOS 2 REGISTROS HACIA QUE LEYERA 1º LOS BITS DEL REGISTRO DE MAYOR PESO, EL ERROR SE AGRABABA YA QUE ERA EN ÉSTE REGISTRO EN EL QUE TENIA ENTRADAS SIN UTILIZAR.

EL CASO ES QUE CREIA HABER PROBADO YA A CAMBIAR LA CONEXION SIN EXITO.

PERDONAD LAS MOLESTIAS. DEJARE EL PROYECTO COLGADO CUANDO LO ACABE.ES BASTANTE INTERESANTE.

MUCHAS GRACIAS A TOD@S