TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jorgejg en 02 de Septiembre de 2011, 14:46:56
-
Estoy implementando la comunicación CDC en C18 siguiendo algunas pautas del "MCHPFSUSB Library Help.chm" hay una secuencia que estoy usando:
void main(void)
{
USBDeviceInit()
while(1)
{
USBDeviceTasks();
if((USBGetDeviceState() < CONFIGURED_STATE) ||
(USBIsDeviceSuspended() == TRUE))
{
//Either the device is not configured or we are suspended
// so we don't want to do execute any application code
continue; //go back to the top of the while loop
}
else
{
//Otherwise we are free to run user application code.
UserApplication();
}
}
}
pero me sale error: "llamada de función sin prototipo" en la linea:
if((USBGetDeviceState() < CONFIGURED_STATE) || (USBIsDeviceSuspended() == TRUE))
debe ser que no está declarado, pero como lo declaro y donde?
-
Creaste correctamente el proyecto? Los path adecuados?
-
Adjunto el arbol del proyecto.
En Built options/project apunto el include a la misma carpeta donde estoy trabajando y tambien a C:\MCC18\h y el linker apunto a la carpeta de trabajo porque uso el bootloader y ahi tengo el *.lkr que uso.
Aparte tambien tengo el siguiente error:
Error - could not find definition of symbol 'USBIsDeviceSuspended' in file 'Objetos\main.o'.
-
Y los archivos *.c/*.h donde los tienes? Dentro de la carpeta del proyecto o dentro de la carpeta microchip, o como?
-
En E:\C18\Pruebas\CDC1 tengo:
main.c
Tareas.c
usb_descriptors.c
HardwareProfile.h
usb_config.h
rm18f4550 - 800 Bootload.lkr
CDC1.mcp
CDC1.mcw
En E:\C18\Pruebas\CDC1\USB tengo:
usb_device.c
usb_function_cdc.c
Compiler.h
GenericTypeDefs.h
usb.h
usb_ch9.h
usb_common.h
usb_device.h
usb_function_cdc.h
usb_hal.h
usb_hal_pic18.h
Output Directory: E:\C18\Pruebas\CDC1\Hex
Intermediary Directory: E:\C18\Pruebas\CDC1\Hex
Include Search Path: E:\C18\Pruebas\CDC1\USB y C:\MCC18\h
Library Search Path: C:\MCC18\lib
Linker-Script Search Path: C:\MCC18\bin\LKR y E:\C18\Pruebas\CDC1
A mi mas me parece que estas funciones que estoy llamando no se encuentran definidas en niguno de los archivos *.h ni *.c que estoy usando, incluso me he metido en cada uno de ellos y no se encuentran dichas funciones que quiero llamar. Estoy usando un PIC18F4550 y lo tengo definido en Select Device.
-
En Include Search Path proba colocando:
C:\MCC18\h
.\USB
.
..
En Linker-Script Search Path, nada.
Sino adjunta el proyecto.
Saludos!
-
He intentado todo pero nada. Adjunto el proyecto y gracias por el apoyo.
-
Adjunto proyecto. Re organice las carpetas ya que los archivos fuente llaman a las otros archivos en base a esa organización.
Saludos!
-
Gracias maestro ahora si compila, no solo la distrubución de las carpetas estaba mal sino el contenido de los archivos *.c y *.h parece que las tenia desactualizado por eso que escribia una función y el compilador no encontraba la definición de dichas funciones. Gracias por tu paciencia, continuaré batallando con el CDC ojalá todo vaya bien para no tener que incomodar por aqui. Saludos.