Subrutinas PIC RS232-Control de I/O

17 12 2007

Esta es la división de subrutinas del PIC, para el control de procesos mediante RS232 y redes de Petri. También se incluye una modificación que se deberá hacer en el programa controlador en C. También se incluye un pequeño resúmen por cada una de ellas.

 

Partes y subrutinas del PIC

-Subrutina de inicializacion

-Subrutina de lectura de sensores

-Subrutina de envío al PC

-Subrutina de recibir del PC

-Subrutina de envío a los motores

 

Modificación en el programa en C

Hay 11 patas para sensores y motores. El programa de C deberá detectar si el proceso de control introducido por el usuario está dentro de estos límites, siendo de 8 el número máximo de sensores y también de 8 el número máximo de motores, no pudiendo sumar mas de 11 entre ellos.

 

Subrutina de inicializacion

Leer el número de sensores y motores desde el PC (bucle infinito hasta que lea los valores, introduciéndolos en dos variables globales con los siguientes nombres: SENSORKOP y IRTEERAKOP). RA0 y RA1 se asignarán al PC (1 de entrada y 0 de salida). Las posteriores, dentro del PORTA, serán para los sensores (entradas) (a partir de RA2). Después de los sensores, las patas siguientes se configurarán como motores (salidas), hasta RB7.

 

Subrutina de lectura de sensores

Se deberán leer uno a uno los estados de cada sensor, almacenándolos en SENSOREAK usando rrf. Primero se tendrá que ir de i=2 (RA2) hasta i=4 (RA4), y después de i=0 hasta i=7 (RA0-RA7), siempre y cuando j sea menor a SENSORKOP. Es decir, tendremos dos bucles de doble condición: (i<=4 && j<=SENSOREAK) el primero, e (i<=7 && j<=SENSORKOP) el segundo. Al salir de la subrutina, se obtendrá en SENSOREAK el estado de los sensores de la siguiente manera: (000000111) , en el caso de que tuviéramos 3 sensores y los 3 estuvieran activados, siendo el de más a la izquierda el S1, y el de más a la derecha el S3.

 

Subrutina de envío al PC

Al enviar el estado de cada sensor al PC, se deberá en viar en orden, es decir, primero S1, luego S2… . Se habrá de transformar cada uno a byte: o 00000000 o 00000001, almacenándolos en variables antes de enviarlos (S0, S1, S2….S7), usando sólo las necesarias (SENSORKOP). Después de transformarlos, se enviarán al PC de la siguiente forma: bit de inicio (un 0), bits de datos en orden inverso (10000000 en el caso de sensor activado) y 2 bits de stop entre bytes, terminando la serie de bytes con 2 bits de stop.

 

Subrutina de recibir del PC

El PC envía en el mismo formato que se resume en el apartado de Subrutina de envío al PC. Por lo tanto la Subrutina de recibir debe comprobar que en la pata RA1 venga un 0 (bit de inicio) para empezar a leer lo que se le envía, y hasta que esto no ocurra estará en un bucle. Una vez comience a leer usando rrf para ir introduciendo bit a bit en cada variable (I0…I7), y leerá de 0 a IRTEERAKOP bytes, saltándo los 2 bits de stop entre cada byte.

 

Subrutina de envío a los motores

Según el bit 0 de cada variable I (I0..I7(irteerakop en realidad, no siempre habrá que llegar a la última ni empezar desde la primera)), lo pegará en la pata correspondiente (Rxx..RXx), valiéndose de SENSORKOP e IRTEERAKOP para hallar las patas correspondientes.


Acciones

Information

One response

17 01 2008
Resúmen final: PIC, RS232, Controlador en C y Redes de Petri « Proiektutaldea-ren Weblog

[…] los límites del programa del PIC en cuanto al control de […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: