Moyano Jonathan:
Hola buen día, mi nombre es Gaby soy estudiante de ingenieria en electrononica.
Oye solo que tenemos muchas dudas yo y mi compañera de proyecto, acerca de la comunicación serial por medio de Labview y un pic 18f2550
Mira tenemos un programa que realizamos en MikroC para la comunicación utilizando un cable serial. La comunicación fue un éxito utilizando la herramienta UART que nos ofrece el MikroC, el problema aquí es que el profesor nos pidió que hiciramos el mismo programa pero ahora implementando Labview.
No somos muy buenas utilizando el Labview pero lo intentamos. Hicimos una interfaz en labview 8.6, sabemos que si envia y recibe el datos ya que conectamos el cable serial e hicimos un puente en los pines 2 y 3, con esto observamos que la comunicacion serial con los Visa si funciono, pero, al conectar nuestra placa con el pic no hace lo que queremos, se supone que tenemos programado el pic para que encienda un led medio segundo cuando haya comunicacion serial. Sabemos que si le llega algo por que enciende el led pero no sigue con el proceso que queremos que haga.
No sabemos si el problema esta en el codigo de mikroc o en la
interfaz del labview.
Estamos mas inclinadas al hecho de que sea el código en mikroc, debido a que no estamos muy seguras de la comparación que se hace con la ventana de mikroc donde antes realizábamos las practicas y que hemos cambiado por la interfaz creada por nosotras en labview, que en caso del serial seria en mikroc TOOLS/USART Terminal y con eso ya aparece esta ventana que reemplazamos, he de ahí donde sale la parte del código que creemos que reemplazar porque en el archivo de .h , nosotros lo llamamos UART1_Read() o en UART1_Write(), entonces para utilizar la interfaz del labview ¿cual seria?
Crees que podrias ayudarnos, te paso el código que tengo en mikroc , para que lo revises y nos digas si puedes ayudarnos.
De antemano muchisimas gracias por tu tiempo.
Codigo MikroC
char uart_rd;
void main() {
ADCON1 |= 0x0F; //Configura AN pins as digital
CMCON |= 7; // Disable comparators
TRISB=0;
TRISC=0;
UART1_Init(9600); // Initialize UART module at 19200 bps
Delay_ms(100); // Wait for UART module to stabilize
UART1_Write_Text("GRACIAS");
PORTC.B0=0;
PORTC.B1=0;
PORTC.B2=0;
while (1) { // Endless loop
if (UART1_Data_Ready()) { // If data is received,
uart_rd = UART1_Read(); // read the received data,
PORTB.B1=1;
Delay_ms(500);
PORTB.B1=0;
while (uart_rd == 'E' ) {
if (uart_rd =='E')
{
PORTC.B0=1;
PORTC.B1=0;
PORTC.B2=0;
Delay_ms(750);
PORTC.B0=0;
PORTC.B1=0;
PORTC.B2=0;
Delay_ms(750);
PORTC.B0=1;
PORTC.B1=0;
PORTC.B2=0;
Delay_ms(750);
PORTC.B0=1;
PORTC.B1=1;
PORTC.B2=0;
Delay_ms(2000);
PORTC.B0=1;
PORTC.B1=0;
PORTC.B2=0;
Delay_ms(750);
PORTC.B0=1;
PORTC.B1=0;
PORTC.B2=1;
Delay_ms(1000);
UART1_Write(uart_rd);
uart_rd = UART1_Read();
if (uart_rd =='M') {
PORTC.B0=0;
PORTC.B1=0;
PORTC.B2=0;
break;
}
}
}
UART1_Write(uart_rd); // and send data via UART
}
}
}
: