Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

04/06/2011 #1681

Avatar de Moyano Jonathan

Hola, alguien me podria ayudar para realizar una interrupcion que lea la linea de un archivo txt y guardarla en la memoria del pic18f4550? mi comunicacion es usb CDC.
No se lee por interrupciones, si usas una memoria SD, vas a tener que implementar el protocolo FAT16/32. En cuanto puedas leer/escribir archivos te puedo ayudar con tu consulta. Un saludo !
04/06/2011 #1682


Hola, gracias por la pronta respuesta, disculpa no me supe explicar yo tengo un archivo de texto (contiene coordenadas X e Y en una linea y son alrededor de 300 lineas) que trato en labview y a traves de este software envio datos al pic (linea por linea) entonces quisiera realizar una interrupcion para saber cuando el pic reciba cada linea y esta guardarla en la memoria y poder leer los datos desde ahi. creo que de esta manera podria sincronizar los datos y darle tiempo al pic de procesarlos y realizar las tareas que se requieren con los mismos.

Un saludo.
04/06/2011 #1683

Avatar de Moyano Jonathan

Lo que andas buscando de manera exacta no lo podés tratar con interrupciones...debido a que USB - CDC no se maneja de esa manera...solo está implementado el polling (busqueda constante de datos). Al margen de esto podés implementar una rutina de tratamiento de datos seriales como lo hace el maestro RedPIC en su página: http://picmania.garcia-cuervo.net/picc.php#COMBUF232
06/06/2011 #1684


Consulta por un error de compilación
Jonathan.:
Buen Día. Soy un principiante en el tema de los PIC´s y tomé este ejemplo que publicaste y lo trato de compilar con el CCS 4.084 que conseguí en la internet, para cambiarle el PIC18F2550 al PIC18F4550 que es el que tengo.
Y me arroja unos errores de compilación tales como .:
***Error 45 "APLICACION_HID.c" Line 74[35,36]:Subscript out of range

Aunque no es único error que arroja, sino que también lo hace en.:
Line 75, 87, 88,89, 92,93, 979 98, 105,106,107,108,110, etc,etc.

Es como si no tomara algunos de los archivos de definiciones.

Y al hacer doble click sobre el erro me lleva a la línea en donde se produce tal error y esta indicando que se produce en la definición de la variable.

Podrás ayudarme a ver que puede estar pasando.?
Gracias por tu ejemplo y por tu tiempo.

Atte
Fernando Lizarraga
Córdoba
Argentina
06/06/2011 #1685

Avatar de Moyano Jonathan

Buen Día. Soy un principiante en el tema de los PIC´s y tomé este ejemplo que publicaste y lo trato de compilar con el CCS 4.084
Ahí está el error, vas a tener que compilar tu proyecto con la versión 4.114, de lo contrario no te va a funcionar. Hay muchas diferencias entre versiones del mismo compilador.

Un saludo !
08/06/2011 #1686


Muy util. He andado buscando esto por todos lados =)
Gracias por tu aporte
14/06/2011 #1687


Que tal, he leido porfin las 85 pags que tiene este tema y descargue muchos de los ejemplos. Leí también por completo la guía que esta en la primera página y comence a probar el ejemplo de aplicación. Transcribi los 2 codigos (CCS y C#) para ver que es lo que hacían y entender que funcion se realizaba, sin embargo no logré que me compilara el de C#, por lo que use los mismos archivos que vienen en el paquete y de nuevo tuve problemas con el codigo en C#. Por lo que me cambié de computadora a una con XP de 32 bit(la que uso normalmente tiene W7 de 64 bit) y la compilación por fin resultó. Después me puse a armar en protoboard el circuito que viene, con los mismos valores y todo tal cual viene indicado con la excepción de que yo uso el 18F4550. Finalmente llego la hora de la prueba, grabé el archivo .hex original del paquete y lo compilé modificando unicamente la libreria para usar el 18F4550. Entonces ya me prepare para conectar a la computadora y sorpresa! me dice que el dispositivo no es reconocido:



y me manda lo siguiente en el apartado de configuracion:



entonces lo desconecte y probe a ver si eran los cables D+ y D- los que me arojaban el error y nada. Borre el Pic y volvi a grabarlo, pero no resulto. Revisé las conexiones y no encontré error.
Entonces aqui pongo las suposiciones de lo que creo que puede estar fallando y les pido por favor que me den su opinion al respecto:

1. Cambiar el 18F4550 por un 18F2550
2. Cambiar la configuración del VID/PID (aunque leí por ahí que no debe ser ya que EasyHID funciona con estos datos provistos por Mecanique)
3. Implementar la parte del conector ICSP, ya que no la tengo en el protoboard, primero por espacio y segundo porqe según yo solamente es para evitar montar y desmontar el PIC para grabar los programas.

Espero que me puedan ayudar con este problema... desde luego yo seguiré intentando solucionar este problema, leyendo para informarme sobre lo que puede estar sucediendo.

Les agradezco a todos los que han colaborado en este Foro y sobre todo a Moyano y Meta con los manuales que me han ayudado bastante, en verdad se les agradece.
14/06/2011 #1688

Avatar de Moyano Jonathan

Decime por favor que versión del compilador estás usando...tenés que usar si o si la versión 4.114 para que te funcione.
14/06/2011 #1689

Avatar de Deego

Hola gelitojr. Yo tenía al principio el mismo problema, y resulta que en mi caso era tu segunda suposición, los valores de VID/PID . Simplemente lo que hice fue ir a la librería correspondiente, cambiar tan solo un valor en cualquiera, ya sea en el VID o en el PID (creo que cambié un 0 por un 1 o viceversa) y listo. Al parecer a mi me creaba conflicto porque ese VID/PID ya lo utilizaba proteus en las pruebas que estaba haciendo. Yo probé eso, y ahora me funciona a las mil maravillas, tanto que era para proyecto para la universidad y está funcionando full. Claro está, que yo lo hice con el 18f2550 pero no tienen muchas diferencias.
14/06/2011 #1690


@Moyano: Respecto a la versión del compilador que uso, es la 4.108 :( voy a tratar de conseguir la versión que me comentas (4.114) y si no la consigo pues me tirare a un pozo :P jeje te agradezco la aclaración en ese sentido.

@Deego: mmm si se me ocurrió poner los que tiene microchip, solo que no lo hice por lo que comenté antes. Me gustaría saber a que te refieres con cambiarle cualquier número. Por ejemplo: el PID en el archivo de CCS es 0x1781 y el VID, 0x07D0. Me sugieres que a cualquiera de esos le cambie cualquier digito ?, ahora ese mismo digito tendría que modificarlo en el archivo de C#,no es así?

Otro detalle que se me paso decir es que estoy corriendo la aplicación de C# en visual 2010 profesional pero creo que no hay inconveniente respecto a eso... y en ese sentido, quisiera saber que es mejor o que se recomienda más, el C# o el VB ? ya que aun no he probado esos ejemplos de VB (los de los Leds y reles) en protoboard ni en codigo y pienso hacerlo para ver que no sean las benditas conexiones, que aunqe ya las revise varias veces pueden ser el factor de falla.

Saludos y gracias!
15/06/2011 #1691

Avatar de Moyano Jonathan

@Deego: mmm si se me ocurrió poner los que tiene microchip, solo que no lo hice por lo que comenté antes. Me gustaría saber a que te refieres con cambiarle cualquier número. Por ejemplo: el PID en el archivo de CCS es 0x1781 y el VID, 0x07D0. Me sugieres que a cualquiera de esos le cambie cualquier digito ?, ahora ese mismo digito tendría que modificarlo en el archivo de C#,no es así?
Tenés que usar si o sí los descriptores que se usan en mi proyecto, el driver que se usa en C# detecta solo el VID y PID que se describen en ese proyecto.


Otro detalle que se me paso decir es que estoy corriendo la aplicación de C# en visual 2010 profesional pero creo que no hay inconveniente respecto a eso... y en ese sentido, quisiera saber que es mejor o que se recomienda más, el C# o el VB ? ya que aun no he probado esos ejemplos de VB (los de los Leds y reles) en protoboard ni en codigo y pienso hacerlo para ver que no sean las benditas conexiones, que aunqe ya las revise varias veces pueden ser el factor de falla.

Saludos y gracias!
Mis pruebas están basadas en Vstudio 2008 ..no en el 2010. Puede ser que tengas un problema en el framework.
15/06/2011 #1692


Que tal,

pues voy a intentar con todo idéntico, es decir: con el 18F2550, visual 2008, Windows XP, CCS 4.114 y mismo circuito. A ver si el problema es la configuración que estoy usando (visual 2010, ccs 4.108 y 18f4550). Una cosa moyano... si grabe el .hex que viene tal cual en tu proyecto de aplicación del manual usb hid con c#, porque necesitaría la versión 4.114 de CCS, si no la compilé ? solo es una duda... en fin, ya comentaré como me fue probando con la configuración original. Gracias!
15/06/2011 #1693


hola, soy nuevo y en la escuela me pidieron seguir tu manual como practica para mi calificacion, tengo el codigo bien pero tengo una duda:
¿Se tiene que definir In_handle como UInt32 o es error mio que me aparezca "In_handle no aparece en el contexto actual"?
si me pudieras responder mi duda te lo agradeceria
15/06/2011 #1694

Avatar de Moyano Jonathan

¿Se tiene que definir In_handle como UInt32 o es error mio que me aparezca "In_handle no aparece en el contexto actual"?
Es una variable y tiene que estar definida como tal. En este caso es del tipo UInt32.

Si lees en el manual , en donde está explicado el software de control, aparece como va definido.

Un saludo !

gelitojr
Una cosa moyano... si grabe el .hex que viene tal cual en tu proyecto de aplicación del manual usb hid con c#, porque necesitaría la versión 4.114 de CCS, si no la compilé ?
Hay sutiles diferencias en las funciones de control y las tablas de descriptores. También yo incluí algunas modificaciones en dichas tablas como se muestra en los descriptores del ejemplo que viene con el manual.
16/06/2011 #1695


En principio, tal cual baje el proyecto propuesto por Jonathan, en el firmware del PIC, sólo le modifiqué el PIC18F2550 a PIC18F4550, y luego lo compilé tal cual me aconsejó Jonathan en su respuesta a mi consulta, con el CCS 4.114 y compiló correctamente.
Con respecto al proyecto de Visual C#, tengo Visual 2010 y cuando abrí la solución con el VC2010 , me sugirió convertirlo a VC2010 en forma automática. Luego lo compilé con el VC2010 y lo probé.
Todo funciona bien.
Estoy trabajando en una portable con Win 7 32bits.
Afortunadamente no tuve más inconvenientes.
Gracias por el aporte Jonathan y por contestar rápidamente a mi consulta.
A todos los que participan de este hilo, un cordial saludo.

Atte
Fernando Lizarraga
Córdoba
Argentina
16/06/2011 #1696

Avatar de Moyano Jonathan

Todo funciona bien.
Estoy trabajando en una portable con Win 7 32bits.
Afortunadamente no tuve más inconvenientes.
Gracias por el aporte Jonathan y por contestar rápidamente a mi consulta.
A todos los que participan de este hilo, un cordial saludo.
Me alegro mucho de haberte ayudado, espero que salgas adelante con tu proyecto. Un saludo !
17/06/2011 #1697


Hola que tal, tengo otra vez varias dudas, como es mi primer proyecto con visual c# es un poco complicado para mi, bueno mi duda son:

*¿Es necesario que este conectado el dispositivo para que el programa funcione? lo que pasa es que cuando lo corro sin dispositivo y muevo una barra PWM me sale este error "No se puede cargar el archivo DLL 'mcHID.dll': No se puede encontrar el módulo especificado. (Excepción de HRESULT: 0x8007007E)", ya agregue mcHID.dll al proyecto y a la carpeta donde esta.

*¿Como se pone el IN 1,IN 2, el min y el max? no viene en el tuto ya lo busque :(

*En el codigo de las barras PWM en el tuto aparece esto:
"private void PWM_CONTROL_1_ValueChanged"
pero en mi codigo me aparece asi:
"private void PWM_CONTROL_1_Scroll"
¿Con cual de los 2 lo dejo?
17/06/2011 #1698

Avatar de Moyano Jonathan

*¿Es necesario que este conectado el dispositivo para que el programa funcione? lo que pasa es que cuando lo corro sin dispositivo y muevo una barra PWM me sale este error "No se puede cargar el archivo DLL 'mcHID.dll': No se puede encontrar el módulo especificado. (Excepción de HRESULT: 0x8007007E)", ya agregue mcHID.dll al proyecto y a la carpeta donde esta.
Es un error común, tenés que agregar la .dll a la carpeta System32 de Windows. Con respecto a si el dispositivo tiene que estar conectado o no: El control por USB tiene 2 partes o elementos principales, el dispositivo USB (PIC) y el programa de control en visual C#.
Por lo antes dicho, es imprescindible que conectes el dispositivo para probar el programa.

*¿Como se pone el IN 1,IN 2, el min y el max? no viene en el tuto ya lo busque :(
No entiendo tu pregunta, por favor sé mas específico.

"private void PWM_CONTROL_1_ValueChanged"
pero en mi codigo me aparece asi:
"private void PWM_CONTROL_1_Scroll"
¿Con cual de los 2 lo dejo?
A fines prácticos es lo mismo, pero podes usar "private void PWM_CONTROL_1_ValueChanged".
18/06/2011 #1699


Muchas Gracias, el programa ya esta completo y funcional, lo de IN 1,IN 2, min y max ya vi que eran labels solo para darle mejor apariencia =P.
Gran tutorial, te felicito.
18/06/2011 #1700

Avatar de Moyano Jonathan

Muchas Gracias, el programa ya esta completo y funcional, lo de IN 1,IN 2, min y max ya vi que eran labels
Menos mal, espero que salgas adelante con tu proyecto.

Un saludo !
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.