Autor Tema: 18F4550 y RS232 en CCS  (Leído 7769 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado E_Castillo

  • PIC10
  • *
  • Mensajes: 2
18F4550 y RS232 en CCS
« en: 13 de Mayo de 2012, 00:11:17 »
tengo el problema que no puedo establecer comunicación con el PIC18F4550, estoy usando un cristal de 20MHZ para el oscilador. Como podrán ver el código es de lo mas simple, pues con el simple echo de activarse la interrupción del RS232 debería de cambiar el estado de los leds, pero NO LO HACE!!!!

#include <18f4550.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG
#use delay (clock = 20000000)
#use rs232(baud=9600, parity=N, bits=8, STOP=1, xmit=PIN_C6, rcv=PIN_C7)
//char Dato;

#int_rda
void rd_isr(void)//función de interrupción por recepción de datos USART
{
//Dato= getc();
output_B (0xFF); //enciende los leds si se activa la interrupción
}

void main()
{
enable_interrupts(global);//Habilito interrupción USART
enable_interrupts(int_rda);

set_tris_b( 0x00 ); // Puerto B como salida.
output_B (0x00); //inicializo puerto B

while(true){
//Código principal
}
}

Desconectado edp

  • PIC10
  • *
  • Mensajes: 8
Re: 18F4550 y RS232 en CCS
« Respuesta #1 en: 26 de Mayo de 2012, 11:57:30 »
Yo tenia el mismo problema con un  18f4525, y despues de darle muchas vueltas creo que el problema viene al definir el puerto RS232, prueba a definir solo velocidad y los pines del puerto HW y ya contaras

#use rs232(baud=9600,  xmit=PIN_C6, rcv=PIN_C7)

Saludos
« Última modificación: 26 de Mayo de 2012, 16:47:47 por edp »

Desconectado lucaspascual

  • PIC10
  • *
  • Mensajes: 31
Re: 18F4550 y RS232 en CCS
« Respuesta #2 en: 17 de Mayo de 2013, 18:17:16 »
tengo el problema que no puedo establecer comunicación con el PIC18F4550, estoy usando un cristal de 20MHZ para el oscilador. Como podrán ver el código es de lo mas simple, pues con el simple echo de activarse la interrupción del RS232 debería de cambiar el estado de los leds, pero NO LO HACE!!!!

#include <18f4550.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG
#use delay (clock = 20000000)
#use rs232(baud=9600, parity=N, bits=8, STOP=1, xmit=PIN_C6, rcv=PIN_C7)
//char Dato;

#int_rda
void rd_isr(void)//función de interrupción por recepción de datos USART

{
//Dato= getc();
output_B (0xFF); //enciende los leds si se activa la interrupción
}

void main()
{
enable_interrupts(global);//Habilito interrupción USART
enable_interrupts(int_rda);

set_tris_b( 0x00 ); // Puerto B como salida.
output_B (0x00); //inicializo puerto B

while(true){
//Código principal
}
}

En FUSES cambia XT por HS.


 

anything