Autor Tema: Problema con 18F2550 y conversion USB-Serial  (Leído 1180 veces)

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

Desconectado PALMARETRO

  • PIC10
  • *
  • Mensajes: 34
Problema con 18F2550 y conversion USB-Serial
« en: 12 de Enero de 2011, 16:45:12 »
Hola, recurro a ustedes por la siguiente duda.

Estoy haciendo un conversor USB<->Serial con un PIC 18F2550, y me pasa lo siguiente:
La transmisión serial a USB funciona bien y los datos que envió por el uart del PIC aparecen bien en el COM virtual.
El problema es que cuando transmito del USB al serial siempre me llega un caracter raro, no se que pueda ser lo que sucede.

Este es el programa con el que estoy trabajando:
Código: [Seleccionar]
#include <18F2550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, parity=n, bits=8, stop=1)

#include ".\include\usb_cdc.h"

#byte PORTA = 0xF80
#byte PORTB = 0xF81
#byte PORTC = 0xF82
#byte PORTE = 0xF84

char car;

void Configurar_Puertos(void);

void main()
{
   delay_ms(100);
   Configurar_Puertos();
   usb_init();   
   while(!usb_cdc_connected()){}
   do{
      usb_task();
      if (usb_enumerated())
      {
         if (kbhit())
         {
            car=getc();
            usb_cdc_putc(car);
         }
         if (usb_cdc_kbhit())
         {
            car=usb_cdc_getc();
            putc(car);
         }
      }     
   }while(true);
}

void Configurar_Puertos(void)
{
   set_tris_a (0b00000000);
   set_tris_b (0b00000000);
   set_tris_c (0b11000000);
   set_tris_e (0b00000000);
}

Quiza el problema sea algo en la instrucción

if (usb_cdc_kbhit())
{
     car=usb_cdc_getc();
     putc(car);
}

Igual espero que me puedan ayudar, gracias
Through You I can do anything, I can do all things, for it's You who give me strength, Nothing is impossible!!