Mostrando entradas con la etiqueta CCS. Mostrar todas las entradas
Mostrando entradas con la etiqueta CCS. Mostrar todas las entradas

sábado, 10 de julio de 2010

Control motor PaP Bipolar con CCS e "interrupcion" por USART programado en Linux

Como es sabido el uC PIC16F84A no cuenta con USART, sin embargo para controlar un motor de pasos bipolar en posición bidireccional, podemos usar un pequeño artilugio para hacer responder a una interrupcion al PIC, usando el protocolo rs232

bueno el codigo fuente es el siguiente

#include <16F84a.h>

#fuses XT,NOWDT

#use delay (clock=4000000)

//#use fixed_io(b_outputs=pin_b3)

//#use fixed_io(a_outputs=pin_a0,pin_a1,pin_a2,pin_a3)



#use rs232(xmit=PIN_B3,rcv=PIN_A4,bits=8)



//variables globales

int1 flagA=FALSE, flagB=FALSE;

int value=50;

//Interrupciones

#INT_EXT

void int_rb0(void){

char letra;

disable_interrupts(GLOBAL);

delay_ms(10);

letra=getc();

letra= toupper(letra);

switch(letra){

case 'D':printf("Derecha\r\n");

flagA=TRUE;

flagB=FALSE;

break;

case 'I':printf("Izquierda\r\n");

flagA=FALSE;

flagB=TRUE;

break;

}

enable_interrupts(GLOBAL);

}



//prototipos

void adelante(void);

void atras(void);







main(){

enable_interrupts(GLOBAL);

ext_int_edge(L_TO_H); //interrupcion en flanco de bajada

enable_interrupts(int_ext); //habilitada interrupcion Externa RB0

printf("Control de\n\r Motor de pasos Bipolar");

while(1){

if(flagA==TRUE)

adelante();

if(flagB==TRUE)

atras();

};

return 0;

}



void adelante(void){





Output_A(input_A()|0x05);

delay_ms(value);

Output_A(input_A()|0x06);

delay_ms(value);

Output_A(input_A()|0x0A);

delay_ms(value);

Output_A(input_A()|0x09);

delay_ms(value);

}





void atras(void){

Output_A(input_A()|0x09);

delay_ms(value);

Output_A(input_A()|0x0A);

delay_ms(value);

Output_A(input_A()|0x06);

delay_ms(value);

Output_A(input_A()|0x05);

delay_ms(value);

}


Aqui el circuito

Zinjal y PSeInt interesante

Saludos a todos, esta ocasion presento a ustedes algo que me encontre en la red, buscando informacion sobre, si existía, un software que pudiera ser capaz de hacer el diagrama de flujo a partir de el codigo fuente, y pues fui a dar con estos dos proyectos de la Universidad Nacional del Litoral en Santa Fe, Argentina, los cuales se me hacen muy interesantes, ya que PSeInt, es un programa que ayuda a los iniciados en programación, específicamente en algoritmia, y el segundo Zinjal es un IDE para lenguaje C/C++ que al igual que el primer proyecto pueden generar diagramas de Flujo a partir de fuente, lo que te da una mejor panorámica, en mi caso, he probado Zinjal usando codigo para CCS y pues si funciona muy bien, aun me falta probar con SDCC y con pic-gcc, pero supongo que no hay ningun problema.

Les dejo los links de las páginas de los autores:
http://zinjai.sourceforge.net/
http://pseint.sourceforge.net/

jueves, 12 de noviembre de 2009

Java + CCS + Proteus + servos + rs232 + compim

El siguiente post trata de como podemos programar una aplicación desarrollada en JAVA, usando la libreria RXTX para comunicarse con un microcontrolador PIC16F877 simulado en proteus a través de componente COMPIM, para controlar posiciones simples de 3 servomotores. El desarrollo es interesante, ya que además no necesitas nada de hardware con estas herramientas para hacer las pruebas. El código de la comunicación se basa en la de que se muestra en picmania de RedPic.
Cabe mencionar que el desarrollo de este pequeño proyecto fué desarrollado por mis alumnos Ismael Pérez Amaro, Alejandra Karina Rojas Guzmán y Magdalena López Tiburcio de la carrera de Ing. en Sistemas Computacionales que cursan el 7to. Semestre en el ITST. a continuación coloco el texto e imagenes que me hicieron favor de redactar, así como los links de descarga.
************************************************************************************


http://www.scribd.com/doc/22497242/InterfazSerialJAVAPROTEUS

InterfazSerialJAVAPROTEUS