Autor Tema: Explicación entre diferentes compiladores al PBPro  (Leído 4996 veces)

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

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Explicación entre diferentes compiladores al PBPro
« en: 02 de Agosto de 2004, 12:29:00 »
Hola,

Yo soy nuevo aquí.

Llevo con los PICs desde el 2002 y he hecho algunas cosas (para la escuela y trabajos aparte).

Desde Agosto del 2003 que se adquirió el PBP 2.44 he estado desarrollando programas en Basic en conjunto con ensamblador.

He visto que aquí se hace referencia a PBPlus, Proteus, C, y demás compiladores (¿lenguajes?).

La pregunta es:

¿Qué diferencias existen entre uno y otro?

Como se está familiarizado con PBPro, conozco (aunque no mucho) sus alcances y limitaciones en torno a programación.

Si me gustaría que se hiciera referencia entorno al Pic Basic Pro Compiler, ya que es el que se conoce.

Gracias de ante mano.

Mario
Mexicali, Baja California, México.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #1 en: 02 de Agosto de 2004, 17:19:00 »
Por lo que yo se el PBP tiene bastantes limitaciones pero por contra lo pueden usar gentes que no sepan casi como funciona el micro en concreto.

Para empezar hay que centrar el compilador en su nacimiento. Principalmente este compilador sale como un entorno para programar facilmente micros peque~os y ese objetivo lo cumplio perfecfectamente. Luego han ido saliendo micros mas y mas potentes con lo que ahora ha quedado un poco "chico" para los micros mas potentes.

1.- Los tipos de datos que maneja son muy escasos: bit, byte, word. No hay distincion sobre mas tipos como con signo, sin signo y punto flotante.

2.- Otra limitacion: no hay string

3.-Una pesima implementacion en las funciones de presentacion en LCD. Un muy bajo rendimiento del codigo generado. Por contra es facil de realizar una aplicacion basica.

4.- Como consecuencia de la no implementacion de punto flotante, a veces te ves y te deseas , para realizar algunos calculos.

5.- Las funciones que tiene implementadas para I2C, puerta serie, shiftin ... funcionan muy bien y te eliminan much trabajo.

6.- Hay bastantes ejemplos en la web de como funcionan las diferentes funciones.

7.-Buen soporte de la herramienta: frecuentes actualizaciones y soporte para casi todos los micros.

8.- Se le puede sacar partido a la herramienta junto al ensamblador.

9.- El manejo de interrupciones es muy lento y ha de hacerse con asm.
---------------------

Mi opinion personal es que hay que irse al C para hacer desarrollos de cierta envergadura, pues ASM no sirve para desarrollos grandes (no por potencia sino por antieconomico, tiempo empleado en depuracion, etc,etc) y basic es muy simple y no da capacidad para algunas cosas. El lenguaje optimo para proyectos es el C. Es alto nivel y te deja una cierta libertad cercana al hardware.

Saludos
Ricky
Madrid-Espa~a

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #2 en: 03 de Agosto de 2004, 01:50:00 »
Gracias por lo mencionado.

Se de primera mano que el PBP no es el mejor para lo que se refiere a operaciones donde el punto decimal es crítico.

Sobre las interrupciones, es cierto lo que se menciona, son MUY LENTAS (5 o 9 µsegundos es una eternidad en programación). Es por eso que se utiliza siempre ensamblador.

Sobre la situación del soporte de µicros más potentes, ahi si tendré que coincidir que soporta una cantidad respetable de µicros de la serie 18FXXX (se está utilizando un 18F448 para un proyecto en este tiempo).

Volviendo, si se me hace la recomendación de programar en C, ¿Cuál sería el compilador apropiado?

NOTA: Tengo que aclarar que C casi no se (es rídicula la cantidad de C que poseo, por eso adquirí el PBP).

Gracias por los comentarios.


Si ven la hora no se asusten, es que yo vivo en México, casi llegando a Tijuana (en Mexicali) y son varias horas de diferencia. Cuando yo me conecto (después del trabajo) ya casi no hay nadie.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #3 en: 03 de Agosto de 2004, 02:17:00 »
Estoy interesado por el mismo tema que tu ya que veo las limitaciones del basic.

El C de un micro Pic no es como el C++ de los PC, pero si da bastante más juego que el basic.

He estado mirando algunas comparativas y creo que la mejor opción es CCS (www.ccsinfo.com)

Hay otros modelos como el Hitech o hay una herramienta C muy buena de IOR (creo recordar). Pero estos C generan un código C menos compacto que CCS (según he poddio leer en comparativas de internet). Aquí hay un foro de C en el que puedes preguntar a expertos en C.

Los C que te comento con ANSI C y el CCS se aleja en algunos casos del ANSI, por lo tanto esto le da ciertas desventajas de portabilidad entre unos micros y otros, pero gana en campactación de código. Como dice el fabricante CCS: es muy raro el tener que pasar código de un motorola a un PIC o a un Atmel, es más, con la dependencia que tienen los compiladores con los recursos hardware del micro es conveniente pensar cada aplicación para cada micro. Esto no es así en máquinas grandes como los PC, en los que la tendencia es generar código para cualquier máquina y cualquier sistema operativo (lease JAVA). Pero en sistemas tan minusculos como un 16F628 o de la serie 10F creo que CCS es una buena opción.

Saludos
Ricky
Madrid-España

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #4 en: 03 de Agosto de 2004, 03:13:00 »
Pues yo también estoy pensando en aprender algo de C, que todavía no lo he usado nunca pero no hago más que escuchar alabanzas.

Creo que deberíamos abrir un hilo en el subforo de C del estilo de "Microchip cursillo" pero llamado "C cursillo".

Además, con los expertos que hay por aquí seguro que aprendemos.

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #5 en: 03 de Agosto de 2004, 03:45:00 »
Aqui hay unos link:

 - Compiladores de  C
   - www.htsoft.com  C de HiTech
   -www.bknd.com  CC5X, Compilador C
   - http://www.ccsinfo.com/picc.shtml C de CCS

 - Compiladores varios
   - http://oase.uci.kun.nl/~mientki/PIC/Pic_frame.htm compilador JAL (como pascal), es free
   - http://www.voti.nl/jal/  Compilador JAL. Es como pascal
   - http://web.gramlich.net/projects/electronics_projects.html uCL
   - http://www.picant.com/p2c/p.html Un tipo de Pascal
   -www.nipple.com herramienta visual gráfica.
   -www.actum.com herramienta visual para programación.
   - www.embedded.com.ar para otras herramientas de programación.
   - www.iar.com embeded C++ para PIC y otros micros, herramientas visuales. Representa en España Novatronic
   
   -www.microladder.com, programar un pic como un autómata, sin C, sin assembler, sin basic.

Saludos
Ricky
Madrid-España


Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #6 en: 03 de Agosto de 2004, 14:37:00 »
Hola,

Antes de ir a trabajar tuve la oportunidad de observar la página de CCS.

Me resulta interesante el hecho de que el compilador se encargue por completo de asegurar las variables a la hora de surgir una interrupción.

Se ve MUY COMPLETO y poderoso pero, lo que no entendí muy bien es esto: ¿Debo comprar la licencia para cada serie? .

Si es así, me resultaría un MUCHO INCONVENIENTE ya que se pretende dar asesorías en la escuela y si bien es cierto que casi nunca se manejan series diferentes a las 16FXXX, se desea incluir los µicros que se han utilizado (16F628, 16F872, 18F448) para que no se queden con uno solo (es una de las ventajas de seguir a µicrochip, sus µicros cambian pero solo en las funciones adicionales).

El hecho de tener que pagar licencia y/o adquirir un compilador para un número específico de µicro (en lo personal) no me atrae.

No quiero que me malinterpreten, el PBPro se compró (mis buenos 250 dlls me costó, aquí en donde el dólar está a 12 pesos x 1) para evitarme problemas de piratería. Debido a esto se han podido solucionar problemas que tenían algunos compañeros que bajaron el PBP y al parecer no les compilaba algunos programas grandes (principalmente los que tenían mucho la instrucción LCDout), fueron conmigo y se compiló sin problemas.

Perdón que se haga referencia al PBP, después de ver las virtudes que se tiene frente al ensamblador resulta una maravilla; el hecho es que de un compilador a otro, al parecer, es algo inferior y por eso la razón de este foro.

Tengo que reconocer que me vi influenciado por los proyectos realizados con este compilador, principalmente los de Karl Williams http://www.thinkbotics.com// (del cual tengo todos sus libros, 3), y por la página que creo estarán familiarizados RENTRON http://www.rentron.com// ya que fue aquí donde se adquirió el PBPro 2.44 y se planea actualizar a 2.45.

Para que me cambie de compilador (como lo hice con cada µicro) deberé estar seguro que se domina (si no al 100%) bastante para poder soportar el cambio y no estresarme porque no me salgan las cosas con el nuevo (si no puedo con el nuevo, siempre podré regresar al viejo).

Pero si me agradaría cambiar (para conocer más).

Se les agradece el tiempo para explicarme las diferencias y como ven, se están tomando en cuenta.


Atte:

Mario
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #7 en: 03 de Agosto de 2004, 18:05:00 »
Hay varias versiones, pero la buena es la ..WH. W indica que tiene IDE integrado y la H significa que abarca todos los micros hasta los 18 (bueno, no se si todos, todos, pero si muchisimos). Las otras versiones que tienen además de ser para menos micros son para trabajar en linea de comandos sin entorno de desarrollo. El problema de este compilador es que te cobran un mantenimiento anual si quieres actualizarlo un poco abusivo.

Yo estoy acostumbrado al PBP y me resulta muy difícil pasar al C. La sintaxis no es la misma, se programa con módulos y cada dispositivo tiene su driver o te lo tienes que hacer. Bueno creo que será cuestion de practicar.  Lo que tengo claro es que es más potente, pero también más difícil de manejar y esto al principio puede llegar a desesperar. Con PBP sale tirando todo a la primera, pero con C no es así. Hay que tener mucho cuidado con los tipos de variables. Luego están los punteros que le dan una potencia enorme, pero que hasta que te acostumbras te fastidia un poco. Tambien tiene estructuras de datos. Bueno no tiene nada que ver.

Por otra parte también se le puede meter ASM en línea igual que al PBP, por si hiciese falta alguna vez. Genera un código compacto, tiene string, etc.

Lo que no estoy enterado es si la gestión de interrupviones la hace bien o tiene mucha latencia como el PBP. Esto es un interrogante para mi. Habrá que preguntarselo a Pocher.

Realmente si piensas adquirir un paquete de este tipo puedes probar antes con las demos que tienen, que aunque restringidas te puedes hacer a la idea el funcionamiento antes de gastarte el dinero. Pienso que aprender este tipo de lenguaje lleva más tiempo que aprender PBP. Pero todo se aprende con teson y ganas.

Saludos
Ricky
Madrid-España

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #8 en: 04 de Agosto de 2004, 03:38:00 »
Ayer me instalé el PCW y tiene una pinta acojonante, con un montón de utilidades muy curiosas y un IDE bastante logrado.
Además, he estado bicheando por los ejemplos y están muy bien comentados, por lo que facilitará bastante su aprendizaje. No los he contado, pero hay ejemplos de todo tipo.

Tiene muy buena pinta y, aunque seguro que al principio nos cuesta más Ricky, creo que va a merecer la pena.

Lo que no sé es si será mejor intentarlo con PCW o con CCS. ¿Qué dices tú Pocher?

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #9 en: 04 de Agosto de 2004, 07:03:00 »
Creo que hay que intentarlo.....y conseguirlo.

Pero (siempre hay un pero) es necesario ir aprendiendo con calma y sin pausa es una tarea árdua que dará sus resultados.

Animo y a por ello.

Saludos
Ricky
Madrid-España

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #10 en: 04 de Agosto de 2004, 07:14:00 »
RGL no entiendo muy bien a qué te refieres con lo de la "latencia" de interrupciones.

Nocturno con lo que dices: "Lo que no sé es si será mejor intentarlo con PCW o con CCS" supongo que te referirás a realizar el código fuente y compilar desde el entorno integrado o bien desde fuera de él. Yo particularmente no uso el entorno de CCS, uso el Ultraedit.

Un saludo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #11 en: 04 de Agosto de 2004, 07:16:00 »
Pues no lo sabía. Creí que eran compiladores distintos y, por lo que dices, deduzco que PCW es un IDE para CCS.

En ese caso mejor, así no tenemos que aprender dos variantes.

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #12 en: 04 de Agosto de 2004, 07:25:00 »
En PBP si activas las interrupciones y se est´´a ejecutando el programa por ejemplo con la intrucción

PAUSE 10000 "Espera 10 segundos

Pues hasta que no acaba de ejecutarse esta instrucción no salta la interupción y en este caso son 10 segundos. Ese es el tiempo de latencia el tiempo que tarda en saltar a la ISR  desde que la interrupción se produce. Vosotros en C no teneis este problema.??

Saludos
Ricky
Madrid-España

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #13 en: 04 de Agosto de 2004, 11:35:00 »
Pués con la instrucción delay_ms(10000) pasaría lo mismo, hasta que no acaba la temporización no atiende la interrupción. Una vez me pasó esto, era un móvil que tenía que girar hacia la derecha durante 15s, pero si durante esos 15s tocabamos el pulsador de paro debía pararse. No tuve más remedio que incluir un bloque de sentencias en ensamblador para que me realizara la temporización y al mismo tiempo se atendiese al estado del pulsador de paro.

Un saldo

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Explicación entre diferentes compiladores al PBPro
« Respuesta #14 en: 04 de Agosto de 2004, 11:48:00 »
En este aspecto entonces nos quedamos igual.

Pero no en otros.

Saludos
Ricky
Madrid-España


 

anything