Autor Tema: problema al compilar delay_us en CCS  (Leído 6253 veces)

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

Desconectado proyecto2009utu

  • PIC12
  • **
  • Mensajes: 62
problema al compilar delay_us en CCS
« en: 14 de Enero de 2011, 12:57:13 »
Buenas, estoy trabajando con el PIC18F4550, intentando levantar una comunicacion USB CDC...

este es mi programa por el momento:

Código: [Seleccionar]
#fuses   HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL12,CPUDIV1,VREGEN
#include <18f4550.h>       
#include <pic18_usb.h>         
#include <usb_desc_cdc.h>  // Descriptores del dispositivo USB.     
#include "usb_cdc.h" // Descripción de funciones del USB.
#use delay(clock=48000000)
#int_usb
short estado_usb;   // boolean global, se debe declarar antes de llamar a usb_cdc.h
#define USB_CON_SENSE_PIN PIN_E3
#define delay_us(x)
                       
static void adqrap(void);                                                                   
static void adqlen(void);
static void lectur(void);                                 
static void escrit(void);
                             
unsigned char datain;

void main() {
      do{
      usb_task();
     
       }while (1); // bucle infinito.                               
set_tris_b (0xff);     
set_tris_a (0);                       
                         
}
                   

El problema que tengo es que no me compila el archivo usb.c (de los driver de CCS) diciendo:
***Error12 Undefined identifier
The specified identifier is being used but has never been defined.  Check the spelling.


Alguien sabe como puedo arreglar esto?

Muchisimas gracias

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: problema al compilar delay_us en CCS
« Respuesta #1 en: 14 de Enero de 2011, 13:05:42 »
Borra esta línea:

Código: [Seleccionar]
#int_usb

Desconectado proyecto2009utu

  • PIC12
  • **
  • Mensajes: 62
Re: problema al compilar delay_us en CCS
« Respuesta #2 en: 14 de Enero de 2011, 13:37:40 »
Gracias, pero me sige haciendo exactamente lo mismo sin esa linea..  :?

gracias por el interes

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: problema al compilar delay_us en CCS
« Respuesta #3 en: 14 de Enero de 2011, 13:42:19 »
Quita también esto
#define delay_us(x)

Desconectado proyecto2009utu

  • PIC12
  • **
  • Mensajes: 62
Re: problema al compilar delay_us en CCS
« Respuesta #4 en: 14 de Enero de 2011, 13:52:20 »
Sigo en lo mismo....


Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: problema al compilar delay_us en CCS
« Respuesta #5 en: 14 de Enero de 2011, 14:45:50 »
Si clickeas sobre la linea del error, el compilador te lleva a la linea de programa donde se origina ese error...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: problema al compilar delay_us en CCS
« Respuesta #6 en: 14 de Enero de 2011, 15:23:47 »
no será que hay que cambiar de lugar el use delay(clokc=48000000) ccs es quisquilloso con eso
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: problema al compilar delay_us en CCS
« Respuesta #7 en: 14 de Enero de 2011, 15:48:07 »
Los FUSES no van depues del #include?
El papel lo aguanta todo

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: problema al compilar delay_us en CCS
« Respuesta #8 en: 14 de Enero de 2011, 17:27:08 »
Los FUSES no van depues del #include?

Eso es cierto. De cuantos Mhz es tu cristal?  Asumiendo que el cristal es de 20Mhz, intenta corrigiendo el encabezado en este orden:

Código: C
  1. #include <18F4550.h>
  2.  
  3.   //configurar un cristal de 20MHz para operar a 48MHz
  4.   #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
  5.   #use delay(clock=48000000)

Después de esto, van los demás includes que necesites.

Saludos!

Edito: Te recomiendo que te estudies la librería usb_cdc.h, pues dentro de esta librería y según algunos defines se incluyen las otras librerías necesarias para la aplicación.  También puedes ver los sjemplos ex_usb_serial.c y ex_usb_serial2.c del CCS.

Acabo de ver algo más:  set_tris_b (0xff);  si quieres usar el puerto B como entradas digitales, también deberías incluir el fuse:
#FUSES NOPBADEN                 //PORTB pins are configured as digital I/O on RESET
« Última modificación: 14 de Enero de 2011, 18:32:59 por bmb »

Desconectado proyecto2009utu

  • PIC12
  • **
  • Mensajes: 62
Re: problema al compilar delay_us en CCS
« Respuesta #9 en: 14 de Enero de 2011, 18:47:27 »
Has dado en el blanco bmb!
Muchas gracias, ya logre compilar mi programa  :-/

la solucion era poner el #use delay debajo de los #fuses

Ahora tengo otro problemita y es como hago para crear un driver? para que la pc me reconozca el dispositivo?
ya que me inicializa el usb, pero no lo puedo hacer funcionar  :(

Muchas gracias a todos por la ayuda

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: problema al compilar delay_us en CCS
« Respuesta #10 en: 14 de Enero de 2011, 19:12:06 »
Hola, me alegra que vayas avanzando con tu programa, aunque yo solo te mostré el orden de como hacer lo que ya te habian dicho los colegas.  De todos modos hay algo que no me cuadra en tu configuración de fuses, por lo que te quisiera volver a preguntar: de cuantos Mhz es tu cristal?  Que aplicación es exactamente la que quieres hacer?  Leiste la parte de abajo (edito) de mi post?

Saludos!

Desconectado proyecto2009utu

  • PIC12
  • **
  • Mensajes: 62
Re: problema al compilar delay_us en CCS
« Respuesta #11 en: 14 de Enero de 2011, 19:49:29 »
Si, lo lei, tengo que ver bien esos ejemplos y el usb_cdc.h

Mi cristal es de 48MHz, creo que asi debo usar PLL12 para dividir 48 entre 12 y lograr los 4MHz necesarios, no?

Mi aplicacion seria enviar datos binarios (8bit) a la PC y luego graficarlos, o sea hacer algo como un osciloscopio digital

Gracias a todos...

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: problema al compilar delay_us en CCS
« Respuesta #12 en: 14 de Enero de 2011, 20:27:46 »
Hola, ahora si entiendo tu configuración. No olvides el fuse que habilita los pines del puerto B como digitales al resetear el PIC.  Uno de los ejemplos que trae el CCS es: ex_usb_scope.c, que es una aplicación muy sencilla de lo que sería la base de un osciloscopio; el problema es que para ensayarlo pide un programa ejecutable que solo viene con la compra de la board USB de ellos, pero lo puedes estudiar como base para tu proyecto.

Saludos!

Desconectado proyecto2009utu

  • PIC12
  • **
  • Mensajes: 62
Re: problema al compilar delay_us en CCS
« Respuesta #13 en: 14 de Enero de 2011, 23:12:07 »
Ahi esta, muchas gracias... lo voy a ver...

Voy a revisar bien para solucionar el problema que tengo con el driver, cuando lo resuelva subire la explicacion aca para toda la comunidad que tanto me ha ayudado  :lol:

Gracias

Desconectado Oceano

  • PIC10
  • *
  • Mensajes: 22
    • Proyectos Roboticos.
Re: problema al compilar delay_us en CCS
« Respuesta #14 en: 04 de Octubre de 2012, 17:13:40 »
Tengo entendido que los PICs con configuración para cristal de cuarzo (XT para 4 MHz y HS para el resto) no puede superar los 20MHz. Según parece a frecuencias superiores de 20MHz hay que poner un oscilador externo para que te entre la configuración que tienes. Según esto, no puedes usar un cristal de 48MHz.

Me pasó lo mismo que a ti y lo pregunté en el foro y me respondieron lo que te comento. La configuración de #fuses lo tienes bien, pero no admite más de 20MHz con cristal.

Por otra parte, en la mayoría de los casos no has de preocuparte por los MHz del cristal, porque internamente funciona a 48 MHz, gracias el PLL interno (y así lo tienes configurado). Es decir, que te va a ir igual de rápido un cristal de 4MHz que poniendo otro de 20MHz.

Si alguien no está de acuerdo o hay matizaciones, que me corrija.
« Última modificación: 04 de Octubre de 2012, 17:29:46 por Oceano »


 

anything