SoloCodigo

Programación Específica => Microcontroladores => Mensaje iniciado por: denial en Viernes 3 de Junio de 2005, 17:17

Título: Pic 16f873
Publicado por: denial en Viernes 3 de Junio de 2005, 17:17
Mi primera pregunta es si el PIC 16F873 necesita de un nivelador de tension para poder conectarce a la PC.
En mi proyecto, necesito recibir datos (caracteres ASCII) serialmente , los voy procesando a medida que estos van llegando, y voy formando una cadena sobre la que tambien tengo que tener control al momento de procesar los datos. Terminado este proceso tengo que segmentar y enviar esta cadena a un modulo GSM  también por el puerto serial. Quisiera que me pudieran ayudar con el manejo de esta cadena, ya que se trata de una cadena muy grande.
Título: Re: Pic 16f873
Publicado por: carmamezo en Viernes 3 de Junio de 2005, 22:35
Yo usé el MAX-232 para la comunicación serie y funcionó perfectamente.  No se si será necesario... pero a mi me funcionó.
Un saludo.
Título: Re: Pic 16f873
Publicado por: © Jonathan © en Sábado 4 de Junio de 2005, 03:00
Es necesario usar el MAX232 porque hay que nivelar las tensiones, la comunicacion sin MAX funciona entre microcontroladores, para la comunicacion hacia el PC es necesario utilizarlo. Cuando termines las conexiones verifica la comunicacion utilizando el hiperterminal o algun programita para recibir los datos. Cuando hayas llegado a eso comenzamos con las dudas sobre la cadena de datos. Saludos :)
Título: Re: Pic 16f873
Publicado por: luisromero en Viernes 1 de Julio de 2005, 18:43
ademas de usar max232 tambien puedes usar una interfax optiva para tener menos riesgo de dañar el pc y te brinda mucha mas seguridad :smartass:  :smartass:
Título: Re: Pic 16f873
Publicado por: oldkami en Martes 5 de Julio de 2005, 21:37
Si la cadena es muy grande y la "procesas" en la medida que van llegando los datos debes tener en cuenta las siguientes cosas:

1. el tiempo de "procesamiento" del dato no puede superar el tiempo de transmision de 2 bytes (maximo tamaño de buffer del 16F873), de lo contrario corres el riesgo de un overflow.

2. si el tiempo de "procesamiento" de un dato necesariamente es mayor a lo indicado anteriormente, debes usar interrupciones y almacenar todos los datos en un buffer de recepción. (manejar un proceso en background). el proceso principal ira sacando los datos del buffer y los procesara sin temor de perdida de datos.

3. si no conoces o tienes experiencia en interrupciones, aprendelas ¡ :) o utiliza control de flujo por hardware. sera más lenta la operación conjunta, pero cumplira su cometido.

4. si la cadena de datos es muy grande como para almacenarla en la memoria del PIC, debes pensar la opción de utilizar una memoria auxiliar, ten encuenta que un bloque de memoria (consecutiva) utlizable de un PIC 16F873 tiene un maximo de unos 110 bytes (110h-17F).

Suerte
 Oldkami
Título: Re: Pic 16f873
Publicado por: oldkami en Martes 5 de Julio de 2005, 21:41
perdon, un bloque de memoria (consecutiva) utlizable de un PIC 16F873 tiene un maximo de unos 96 bytes (A0h-FF).