TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: jeremylf en 15 de Noviembre de 2011, 00:04:42

Título: CCS o C30
Publicado por: jeremylf en 15 de Noviembre de 2011, 00:04:42
Pues eso, quisiera saber quienes usan CCS o C30 para los 16bit? Y porque?

Si existe un tema asi, aganmelo saber y boren este  :mrgreen: Gracias.
Título: Re: CCS o C30
Publicado por: Suky en 15 de Noviembre de 2011, 00:39:20
C30! Cuando intenté usar CCS en un micro de 16-bits no funciono, así que ni pensarlo. Ahora por lo que he visto va mejor, pero también he visto que saltan cada bugs!  :shock:


Saludos!
Título: Re: CCS o C30
Publicado por: rivale en 15 de Noviembre de 2011, 00:42:34
concuerdo con suky, cuando empece con los de 16 bits me encontre con tu misma duda.

el ccs tiene muchos errores para los pics de 16 bits. incluso lei en el foro algun comentario que decia asi

"lo peor que te puede pasar es que compile y no funcione"  :?


en c30 tienes control total del micro, y en ccs muchas cosas con cajas negras que no estas seguro de como lo hace o si lo hace bien ;-)

Título: Re: CCS o C30
Publicado por: Nocturno en 15 de Noviembre de 2011, 02:09:53
A pesar de la posibilidad de encontrar algún bug, mi último proyecto lo hice con CCS y estoy sumamente satisfecho. C30 es infumable.
Título: Re: CCS o C30
Publicado por: jeremylf en 15 de Noviembre de 2011, 02:19:01
Porque infumable?  :D
Título: Re: CCS o C30
Publicado por: rivale en 15 de Noviembre de 2011, 02:30:49
que es infumable?
Título: Re: CCS o C30
Publicado por: jeremylf en 15 de Noviembre de 2011, 02:45:10
http://es.thefreedictionary.com/infumable

Pero creo que lo ha dicho con otra intención. Al menos yo, me rió porque suena gracioso, pero exactamente no se a que se ha referido manolo.
Título: Re: CCS o C30
Publicado por: Nocturno en 15 de Noviembre de 2011, 03:34:46
Jeje, me refería a esto:
http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=infumable


¿Y porqué?, pues porque una vez que te acostumbras a esto, lo demás te parece infumable:

Código: C
  1. delay_ms(100);
  2.    usb_init_cs();                  // Inicializa USB
  3.    setup_adc (ADC_OFF);               // Inicializa entradas analógicas
  4.    setup_adc_ports( NO_ANALOGS  );      
  5.    setup_timer1(TMR_INTERNAL|TMR_DIV_BY_256);         // Inicialización de timers
  6.    setup_timer2(TMR_INTERNAL|TMR_DIV_BY_8);
  7.    setup_timer4(TMR_INTERNAL);
  8.    set_tris_c(0b11000101);
  9.    set_tris_e(0b11000011);
  10.    set_tris_f(0);
Título: Re: CCS o C30
Publicado por: jeremylf en 15 de Noviembre de 2011, 05:35:33
Aun no termino de entenderte manolo. Te has acostumbrado tanto a la simpleza de programar con el CCS que te parece inaceptable, de mala calidad, sin aprovechamiento posible, utilizar el C30. Es eso?  :lol:
Título: Re: CCS o C30
Publicado por: Nocturno en 15 de Noviembre de 2011, 06:02:50
No tanto, es que he exagerado. C30 es bueno, pero muy complicado.
Y las optimizaciones del código son nulas: cuando tengas un momento prueba a compilar un printf con CCS y con C30 y verás a qué me refiero.

De todas formas, no hay un compilador mejor que otro, sino que cada uno elegirá aquel con el que se sienta más cómodo y seguro.
Título: Re: CCS o C30
Publicado por: manwenwe en 15 de Noviembre de 2011, 07:46:25
Sin duda C30!
Título: Re: CCS o C30
Publicado por: RALF2 en 15 de Noviembre de 2011, 09:42:23
Sin duda CCS!!!   :mrgreen:
Facilito de usar, muy buena informacion y uno se divierte mucho con los bugs  :D

Título: Re: CCS o C30
Publicado por: KALLITOS en 15 de Noviembre de 2011, 10:13:45
Sin duda CCS!!!   :mrgreen:
Facilito de usar, muy buena informacion y uno se divierte mucho con los bugs  :D



 :shock: :?

Título: Re: CCS o C30
Publicado por: Suky en 15 de Noviembre de 2011, 10:49:19
Sin duda CCS!!!   :mrgreen:
Facilito de usar, muy buena informacion y uno se divierte mucho con los bugs  :D



 :shock: :?



Se nota que tiene tiempo para revisar el asm que le generó para ver si es el adecuado  :mrgreen: :D

No tanto, es que he exagerado. C30 es bueno, pero muy complicado.
Y las optimizaciones del código son nulas: cuando tengas un momento prueba a compilar un printf con CCS y con C30 y verás a qué me refiero.

Eso es muy cierto, pasa con C18 y Hi-tech, pero teniendo pleno conocimiento de ambos compiladores (C18 y CCS), y me dan a elegir: 85% C18 y 15% CCS. Ahora en 16-bits perdió!  :D C30 100%
Título: Re: CCS o C30
Publicado por: MerLiNz en 15 de Noviembre de 2011, 11:39:07
no he usado ccs para dspic pero supongo que sera parecido al 8bits, la diferencia entre ccs es que el ccs te hace el todo, mientras que en el C30 tienes que configurar tu todo, vectores de interrupciones, registros...

Para los que quieran las cosas faciles el CCS es su compilador, sin embargo no conseguiran sacarle el 100% de rendimiento al pic, con el C30 eres tu el que manejas al pic desde 0, yo siempre he preferido eso ya que asi tanto a la hora de debuggear, como a la hora de optimizar eres tu el que pone el limite, no el compilador (como en caso del ccs).

El C30 tiene varios niveles de optimizacion, el default la verdad es que crea mucho codigo, sin embargo yo uso el 'S' y optimiza que da gusto, desde el hecho en que si quieres poner a 0 por ejemplo 10 variables, el codigo asm que genera es guardar en un registros el valor '0' y luego asignarselo a cada variable con una unica instruccion.

Aparte, no olvidemos de que podemos configurar cualquier parte del codigo, incluso el acceso a las interrupciones generando codigo rapido __attribute__((interrupt,shadow,no_auto_psv)), con este codigo conseguimos que en unas 5tcy este dentro de funcion de interrupcion, sin embargo en CCS nose si se podra tal cosa.
Yo llevo 1 semana con el C30, y lo afirmo que es complicado, el __attribute__ tiene muchisimas configuraciones, y aprenderselas es dificil, luego como eres tu el que decides en que memoria trabajar, y dspic tiene 4-5 tipos de memoria distintas pues se hace mas complicado aun, sin embargo, con el C18 tambien me paso algo similar al principio, una vez me adapte no fue complicado. Aun asi seguire con el C30 porque una vez lo controle, se que podre aprobechar el 99% del pic, el uso de todas sus memorias, registros... Es decir, con el C30 el proyecto dependera de mi, con CCS yo dependeria del compilador y a mi que me controlen como que no  :-/
Título: Re: CCS o C30
Publicado por: Nocturno en 15 de Noviembre de 2011, 12:35:46
Está claro que para gustos, los colores. Entiendo que os guste más C30, pero no que digáis eso de que con CCS no se controla.
Allí donde se puede llegar con una función de alto nivel, con CCS lo tienes fácil. Pero donde no se llegue, a bajo nivel se trabaja igual con CCS que con C30: escribiendo registros.
Título: Re: CCS o C30
Publicado por: Suky en 15 de Noviembre de 2011, 12:57:10
Está claro que para gustos, los colores. Entiendo que os guste más C30, pero no que digáis eso de que con CCS no se controla.
Allí donde se puede llegar con una función de alto nivel, con CCS lo tienes fácil. Pero donde no se llegue, a bajo nivel se trabaja igual con CCS que con C30: escribiendo registros.

Vamooooos!!! Si en los PIC18 existen 2 vectores de interrupción, cosa que los que usan CCS muy pocos lo saben, y cuando quieres implementarlo solo te deja utilizar una única interrupción de alta prioridad  :D :D Para poder controlarlo completamente en CCS hay que escribir los *.h completos a gusto de nuevo con la definición de cada registro/bits  :D
Título: Re: CCS o C30
Publicado por: Nocturno en 15 de Noviembre de 2011, 13:08:18
Pues yo juraría que los he usado sin problemas: #priority
Título: Re: CCS o C30
Publicado por: MerLiNz en 15 de Noviembre de 2011, 13:12:52
el problema es que las funciones de alto nivel del CCS ya te consumen mas que hacerlo manualmente, has puesto el ejemplo de codigo, en C30 seria tan facil como

AD1CON1bits.ADON=0;
ANSELA = ANSELB = ANSELC = ANSELD = ANSELE = ANSELG = 0;
T1CON=TMR_INTERNAL|TMR_DIV_BY_256;
T2CON=TMR_INTERNAL|TMR_DIV_BY_8;
T4CON=TMR_INTERNAL;
TRISC=0b11000101;
TRISE=0b11000011;
TRISF=0;

como ves, tampoco es nada del otro mundo,  y te ahorras unos buenos tcy ya que las funciones de alto nivel de CCS se usan por CALL y RETURN

Y tambien veo el problema en que el CCS te controla todo lo que son las interrupciones, creo que de esto no se puede cambiar nada ya que es propio del compilador, muchas veces he visto que el mismo CCS te borra las flags y todo eso automaticamente, el problema nose si en caso de que si no deseas hacerlo asi se pueda cambiar, en los pics de 8bits se que el vector lo creaba el propio compilador de CCS y luego cuando tu creabas alguna funcion con #INT_RTCC por ejemplo, el compilador hacia un goto hacia la funcion que hayas creado, como puedes crear muchas funciones la funcion que crea el compilador debe examinar de que flag viene y luego enviarte hacia esa direccion.

Yo lo veo claro, CCS para aprender, o proyectos pequeños de poca precision lo veo bien. Sin embargo para proyectos grandes, donde la optimizacion es una prioridad, y donde se requiera mucha precision C30, para algo superior ASM30
Título: Re: CCS o C30
Publicado por: Suky en 15 de Noviembre de 2011, 13:13:36
Pues yo juraría que los he usado sin problemas: #priority

Uuuu!! Nooo, eso es prioridad por banderas no por vector de interrupción  ;-)

Yo me refiero a:

Citar
The keywords HIGH and FAST may be used with the PCH compiler to mark an interrupt as high priority. A high-priority interrupt can interrupt another interrupt handler. An interrupt marked FAST is performed without saving or restoring any registers. You should do as little as possible and save any registers that need to be saved on your own. Interrupts marked HIGH can be used normally. See #DEVICE for information on building with high-priority interrupts.



Yo lo veo claro, CCS para aprender, o proyectos pequeños de poca precision lo veo bien. Sin embargo para proyectos grandes, donde la optimizacion es una prioridad, y donde se requiera mucha precision C30, para algo superior ASM30


En C30 podes incrustar ASM muy fácil, usando todo lo de ASM30 y con el poder de C en todo lo demás  :)

Título: Re: CCS o C30
Publicado por: MerLiNz en 15 de Noviembre de 2011, 13:15:33
Está claro que para gustos, los colores. Entiendo que os guste más C30, pero no que digáis eso de que con CCS no se controla.
Allí donde se puede llegar con una función de alto nivel, con CCS lo tienes fácil. Pero donde no se llegue, a bajo nivel se trabaja igual con CCS que con C30: escribiendo registros.

Vamooooos!!! Si en los PIC18 existen 2 vectores de interrupción, cosa que los que usan CCS muy pocos lo saben, y cuando quieres implementarlo solo te deja utilizar una única interrupción de alta prioridad  :D :D Para poder controlarlo completamente en CCS hay que escribir los *.h completos a gusto de nuevo con la definición de cada registro/bits  :D

http://www.ccsinfo.com/faq.php?page=high_and_fast_interrupts

Ahi te dicen como cambiar prioridad, o salvar mas o menos registros, sin embargo esta limitado a una interrupcion fast, y high sin limitar, desconozco porque es asi, ya que fast es una interrupcion sin salvar registros, y nose porque solo lo limitan a uno, quizas porque el vector de interrupciones del CCS hace call's y para esto es necesario salvar los registros.
Título: Re: CCS o C30
Publicado por: Nocturno en 15 de Noviembre de 2011, 13:21:13
Entendido, ahora sí entiendo por qué decís que C30 ofrece mayor control.
Título: Re: CCS o C30
Publicado por: rivale en 15 de Noviembre de 2011, 13:34:51
que buen debate se genero con esto  :D, creo que en algo en lo que la mayoria estariamos de acuerdo es en que es bueno conocer los 2, ccs y c30, y siempre probando algo sera mejor en uno y algo sera mejor en el otro ;-)
Título: Re: CCS o C30
Publicado por: MerLiNz en 15 de Noviembre de 2011, 16:11:54
esque os volveis muy comodos, ya llegara el momento en que saquen un compilador que le digas, quiero que se enciendan 5 leds, tenga 2pwm de 30khz y 10khz, y una entrada analogica y se haga solo jaja.

Yo todas las librerias ke he hecho han sido por mi, mi propia libreria glcd, con menus, personalizable... libreria memoria spi, libreria ECAN, siempre me gusta hacerlo a mi gusto y que cuando algo me falla se de donde puede venir el problema, cierto que se tarda mas, pero a la hora de programar no necesito consultar ningun tutorial ni nada ya que lo que yo hago, se como va xD

Lo unico que posiblemente no use hecho por mi es la libreria USB OTG, que se me hace largo y no entiendo muy bien como va el usb, asiq cojere funciones de las librerias de microchip y me hare una a mi gusto.
Título: Re: CCS o C30
Publicado por: Nocturno en 15 de Noviembre de 2011, 16:14:01
Tener tiempo para poder hacer todo eso es un lujo, yo no puedo permitírmelo. Créeme, si algún compilador funcionara como has descrito, sería mi favorito, aunque el printf ocupara toda la ROM  :D
Título: Re: CCS o C30
Publicado por: Suky en 15 de Noviembre de 2011, 16:21:00
Tener tiempo para poder hacer todo eso es un lujo, yo no puedo permitírmelo. Créeme, si algún compilador funcionara como has descrito, sería mi favorito, aunque el printf ocupara toda la ROM  :D

+1  :D
Título: Re: CCS o C30
Publicado por: MerLiNz en 15 de Noviembre de 2011, 16:21:42
Tener tiempo para poder hacer todo eso es un lujo, yo no puedo permitírmelo. Créeme, si algún compilador funcionara como has descrito, sería mi favorito, aunque el printf ocupara toda la ROM  :D

el caso es que son cosas que en un futuro te sirven para otros proyectos, incluso lo puedes migrar a dspic cambiando algunos registros, piensa por ejemplo que necesitas usar una libreria glcd, pero ahora tu proyecto requiere una pantalla de 192x64, la de ccs no la podras usar, ahora que haces?? Investigas la libreria de ccs y la adaptas para usar la lcd de 192?? Te tiraras mas tiempo viendo el funcionamiento de la libreria de ccs que hacer la tuya propia y modificarla, porque al hacerla tu, sabes por donde van los tiros.
Título: Re: CCS o C30
Publicado por: MGLSOFT en 15 de Noviembre de 2011, 16:36:29
A todo esto, alguien se dio cuenta que CCS NO tiene un compilador para PIC32 ??
Título: Re: CCS o C30
Publicado por: Nocturno en 15 de Noviembre de 2011, 16:37:09
Todavía no
Título: Re: CCS o C30
Publicado por: rivale en 15 de Noviembre de 2011, 19:38:11


ya llegara el momento en que saquen un compilador que le digas, quiero que se enciendan 5 leds, tenga 2pwm de 30khz y 10khz, y una entrada analogica y se haga solo jaja.

pues el wizard del ccs supuestamente te configura todo, aunque no me gusta usarlo  :mrgreen:
Título: Re: CCS o C30
Publicado por: Suky en 15 de Noviembre de 2011, 22:24:34
Tener tiempo para poder hacer todo eso es un lujo, yo no puedo permitírmelo. Créeme, si algún compilador funcionara como has descrito, sería mi favorito, aunque el printf ocupara toda la ROM  :D

el caso es que son cosas que en un futuro te sirven para otros proyectos, incluso lo puedes migrar a dspic cambiando algunos registros, piensa por ejemplo que necesitas usar una libreria glcd, pero ahora tu proyecto requiere una pantalla de 192x64, la de ccs no la podras usar, ahora que haces?? Investigas la libreria de ccs y la adaptas para usar la lcd de 192?? Te tiraras mas tiempo viendo el funcionamiento de la libreria de ccs que hacer la tuya propia y modificarla, porque al hacerla tu, sabes por donde van los tiros.

Eso es muy cierto, para dispositivos que piensas usar en la mayoría de los proyecto o librerías que desarrollas desde cero por ser innovador en el tema (en estos tiempo, esto se da muy pocas veces  :mrgreen: ), es bueno dedicarle tiempo y hacer una librería a gusto, bien pensada y lo más portable posible. Desde hace un tiempo (http://www.micros-designs.com.ar/librerias-genericas-en-c-%C2%BFcomo-trabajar/) intento realizarlo de esa manera, y como CCS no cumple el ANSI C muchas veces se complica incluirlo.

Pero otras tantas se usa lo que se dispone y se trata de aprovechar lo mejor posible, todo depende del momento y del proyecto  ;-)


Saludos!
Título: Re: CCS o C30
Publicado por: fram_22 en 17 de Noviembre de 2011, 18:24:10
Hola:

Yo les platico de mi experiencia. Mi tesis de maestira y de doctorado estan basadas en el diseño de convertidores electronicos de pontecia conectadas a la red electrica. Para esto necesito contar con una buena libreria de operaciones matematicas de punto fijo. Por esto utilizo C30. Estoy de acuerdo que noe s tana migable como otros compiladores como mikroc o le mismo CCS. Pero a mi me ha parecido bastante sencillo. Afinal de cuentas sabiendo C sales de apuros. Pero en cuestiones de calculo, las librerias libq.h y dsp.h hacen que valga la pena utilizar C30. Ya que hacen las tareas de procesamiento de señales sumamente faciles.
Pero en fin esa es mi opinion. Haber que piensa el resto.

saludos!