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

Temas similares

11/12/2011 #21


Como mencione
Yo personalmente cuando programo mezclo Código C y Código ASM, en el proyecto que este realizando para optimiza recursos, no soy un experto en ASM, pero hay ciertas cosas donde con un pocas lineas en ASM la tienes como estructuras en tablas.
Yo también utilizo el CCS, me gusta su Wizard, te facilita mucho el configurar el micro.
El HI-TECH, C18, un 40%, porque muchas veces cuando haces un proyecto y necesitas ayuda, encuentras códigos para ellos, pero el HI-TECH & uVision Keil para el 8051 al 100%.

Otra es que el HI-TECH, no tiene un IDE muy amigable, no encuentras variedad de ejemplos en la red. y CCS tiene muchos ejemplos en la red, propios de la empresa y un IDE muy amigable.
27/01/2012 #22

Avatar de dannyy

El CCS, es un buen compilador pero el problema se da cuando se tiene que optimizar la memoria,
Ejm:
Código CCS
.................... output_high(PIN_B0); pon a 1 la salida puerto B, pin 0 "B0"
código ASM generado por CCS
0015: BSF 03.5
0016: BCF 06.0
0017: BCF 03.5
0018: BSF 06.0
a consumido cuatro lineas de memora ROM del PIC


Programando en ASM
BSF PORTB,0; Bit Set File
eso seria todo para poner 1 la salida puerto B, pin 0 "B0"
por esta simple razón no uso el lenguaje C
porque ocupa mas memoria de lo normal y por ende tarda mas en ejecutar las instrucciones
y se vuelve menos eficiente y menos velos por lo que tienes que hacer instrucciones de mas, algo que
vuelve a nuestro proyectos menos complejos

yo uso el MPLAB con el assembler que abarca toda la gamma de microcontroladores que existen en el mercado
ademas acaba de sacar una nueva versión de MPLAB el "MPLAB X" que es mucho mejor y actualizado con los nuevos pic que salen al mercado desde los 12fxxx hasta los 30fxxx y ds pics

---------- Actualizado después de 8 minutos ----------

pues estas mal porque el ccs con output_high(PIN_B0) me genera solo una linea en asm, igual que el c18. lo que pasa es que tienes que poner #Use Fast_Io(B).
amigo, no creo que esa instrucción "
output_high(PIN_B0)
" sea el único que cree códigos e instrucciones en ASM con exageraciones
de ese tipo

con el
#Use Fast_Io(B)
solo arreglas una parte de las instrucciones pero no creo que arregle todas las instrucciones del programa
porque si arreglara toda las instrucciones entonces el codigo resultante no seria tan grande
27/01/2012 #23


Si tenes que manejar tiempos muy precisos o estás queriendo reducir el costo del producto empleando gamas bajas de ucontroladores nada le gana al ASM

Ahora si le podes meter un micro con el que no te quedas tan corto, o la aplicacion sea algo que no necesita gran precision la facilidad y el tiempo de desarrollo que te ahorras con el C es insuperable
27/01/2012 #24

Avatar de Meta

ralcesar dijo: Ver Mensaje
Si tenes que manejar tiempos muy precisos o estás queriendo reducir el costo del producto empleando gamas bajas de ucontroladores nada le gana al ASM

Ahora si le podes meter un micro con el que no te quedas tan corto, o la aplicacion sea algo que no necesita gran precision la facilidad y el tiempo de desarrollo que te ahorras con el C es insuperable

Así es. Ya sabes. ASM para cosas pequeñas con los PIC16F, para C son más bien PIC18F y no pegarte media vida con el mismo proyecto.

El que me llama la atención es el MPLAB X aún en beta y el C.
27/01/2012 #25


Meta dijo: Ver Mensaje
El que me llama la atención es el MPLAB X aún en beta y el C.
MPLAB x es solo un ide,. Ademas de que ya salio la primer version.
No entiendo a que te referis con "y el C"
28/01/2012 #26

Avatar de Meta

Es verdad.
Lo de la C fue error, me refiero a _Java el IDE.

Ahí ya programaremos todo.

En el fondo prefiero MPLAB X más bien el C18. Si se te queda corto la RAM o la memoria de programa consigan otro PIC18F más grande o simplemente no usen el C para los 16F que es más bien ASM. También aprender técnicas de optimización.

Un saludo.
04/02/2012 #27


NO es tener el uC con mas ROM y RAM, es saber utilizar adecuadamente lo que tienes.

Para cualquier uC la potencia del ASM, es insuperable ya que estas manejando directamente al uC. para los PIC no es muy complejo ya que tiene un set de instrucciones reducido. sabiendo combinar C+ASM tienes un poder increíble en tus manos.
05/02/2012 #28

Avatar de Meta

v17h0r dijo: Ver Mensaje
sabiendo combinar C+ASM tienes un poder increíble en tus manos.
Muy cierto, lo que muchos no hacen estas técnicas. Los que lo suelen hacer son gente qu eempezaron con ASM, luego se introdujeron al C. Más tarde se da cuenta que para tener un buen rendimiento en alguna parte de la programación meten el ASM en medio del C que te lo permite. Así el código será más eficiente con más rendimiento.
09/02/2012 #29

Avatar de dannyy

tienen mucha razón pero, discúlpenme si los molestos con este comentario
yo creo que el lenguaje C se creo para personas aficionadas y principiantes
y no veo programa alguno que no se pueda hacer en ASM

es como por ejemplo
en ASM tu estas dentro del pic y comandas paso por paso
mueves tu mismo los mecanismos internos
y en C le das a un desconocido que lo mueva por ti y es poco confiable

u otro ejemplo
con assembler es como si tu hablaras ingles y tu mismo puedes hablarle
y con C primero le hablas a un traductor y el habla por ti y no sabes lo que le dice ¿eso no seria desconfianza?
aparte, el tamaño si importa porque por mas que sea grande el tamaño de memoria de los 18f y ds pics
la eficiencia y garantia disminuye, lo que hace que nuestros proyectos se vean menos confiable y menos complejos y lo que uno busca es complejidad y no hacer por hacer
en vez de malgastar esa memoria podríamos emplearla en otras cualidades

ademas si el C fuera tan fantastico como lo es el ASM, entonces porque microchip no desaparece el MPLAB y usan el C18 (ya que es un negocio redondo porque se paga)y adentro ya si quieren asen sus arreglos de asembler cuando necesiten presicion
pero no!. y como prueba de esto es que lo mejoro con el MPLABX que tambien es assembler y para mucho mas componentes actuales

ademas, creen que una tecnologia tan compleja va a ser asi de facil trabajarla

les pongo otro ejemplo
con el C, el que maneja ese lenguaje sabe que hay una instruccion o algo asi no me acuerdo bien porque ase mucho que no uso ese lenguaje( y digo todo esto porque yo use tambien el C ), sobre la lectura de la memoria eeprom externa y comunicacion serial
pero si el C tenia esa instrucción entonces hay va la pregunta del millon

¿porque microchip implementa comunicacion I2C, serial y SPI?
si se supone que eso estaba controlado por el C
eso beneficia a los que programan en ASM y con eso el C pierde algo de interes
y ahora han implementado nuevas cosas a los pics como usb y otras cosas mas y no ai porgrama que no se pueda aser en ASM hay esta el ingenio de cada uno y recuerden no ir defrente a lo facil aique sufrirla para ser buenos programadores y no a ser presos del C ya que tiene limites

porque un programa en ASM es mas garantia que uno en C o Basic

y reitero disculpenme si ofendo a alguien con esto pero es la verdad, bueno mi verdad y ojala y no gane enemigos
09/02/2012 #30

Avatar de dinoelectro

estoy muy de acuerdo con dannyy.. todo lo que ha dicho es verdad; sin embargo creo que no esta por demas tener una herramienta alternativa para programar microcontroladores; sobre todo porque la mayoria proyectos no necesitan gran capacidad de control y ahorro de memoria... si el lenguaje C te facilita las cosas.. por que no utilizarlo??

dejo una cita; del espanol lope de vega que viene bastante bien para este tema: "en este incierto mundo nada es cierto o es mentira; todo depende del color del cristal con el que atraves lo miras...:
10/02/2012 #31

Avatar de Meta

Hola:



Se sabe que C tienes ciertas limitaciones al menos en el campo de CCS frente a C18. Uno de ellos es que cuando sacan un PIC nuevo, el CCS puede tardar un año en hacer una librería para que funcione alguna función de los bancos de memoria.

¿Qué hacer?

Introduces etiquetas y códigos de ASM puro y duro del PIC para que logres funcionarlo. En cuanto al C18, también se puede hacer, la idea real en este caso es ahorrar algo de memoria y sobre todo tener más rendimiento en algunas partes del programa.

La ventaja del C es muy parecido a otros C estandar de otros microcontroladores, hay de todo tipo, desde que aprendas con uno, al introducirte a otra marca o o la misma pero en otra familia que la estructura interna es diferente.

Si ya cuesta adaptar un lenguaje ASM a otro PIC, hacerlo con AVR no es posible, en cambio si usas el C tiene más posibilidades y en menos tiempo.

ASM más eficacia menos eficiente en tiempo.

C lo contrario.

Mezcla de C y ASM un término intermedio.

Para hacer proyectos pequeños como este vídeo para eso está el ASM.

Si en temas de USB 2.0, (USB 3.0 en el posible futuro) o pantallas táctiles a color con menús, se recomienda C. En ASM te puedes pegar media vida.

Quiero hacer un Sistema Operativo a lo Linux solo con ASM. La verdad que ASM se usas para algunas cosas. Gran parte está hecho en C y la mayoría de los programas en C. Si usamos un Microprocesador i7 para hacer nuestras aplicaciones de encender y apagar Led, el ASM para este micro es totalmente compleja y no te vale para los demás como el Pentium IV por poner un ejemplo y eso que es del mismo fabricante.

¿Por qué se usa el C?

Para ahorra tiempo. En temas de microcontroladores se usa mucho el ASM porque es sencillo, para mi no tanto.

¿Por qué no usan C para todas las aplicaciones de Windows hoy en día?
Se suelen usar en temas de Driver, la mayoría es en C o lenguajes de alto nivel, y otros demasiado alto como Java y .NET.

En temas de PIC, lo mejor es empezar con ASM, luego C y así combinas las dos cosas. Si tienes problemas de espacio de memoria, a obien, compra otro PIC de mayor capacidad, o aprende a optimizar a tope tu propio código a toda costa, de paso tendrás mejor rendimiento y menos cuelgues.

Los PIC32 por su gran complejidad, Microchip prefiere que usemos y nos centremos en C, por algo será.

Lo más que me sorprende, le dio al fabricante sacar PIC32 de 28 a 40 pines y que se puede robar más facilmente en la protoboard, cosa que antes no era así. Poco a poro triunfa.

PIC32 de 28 y 40 pines

Entre ASM y C a escala mundial, preferiblemente el C ya que se usa para casi todo, hasta programas CustomFirmware, consolas de código cerrado y mil cosas más. No aprender ASM diferentes por cada micro diferentes. ¿Alguna idea cuantas márcas hay de microcontroladores, sin contar microprocesadores y FPGA?

En resumen, si te dedicas a programar PIC, es bueno el ASM, luego el C, después la combinación. La gente de hoy en día, cada vez más veo que prefieren el C. En mi caso cada vez deseo más el C, por ahora estoy con el ASM a cañón. El C por el tema que te ahorras muchísimo tiempo, haces proyectos mucho más complejo en poco tiempo y ser capaz de hacerlo, frente al ASM que te pegas media vida.

Un saludo.
10/02/2012 #32

Avatar de Basalto

Yo utilizo el C18 por 4 razones:
1-. Cuando sacan al mercado un PIC, las librerias las integran casi de inmediato.
2-. Parecido a C32, por lo que quiero ponerme con el dentro de poco.
3-. Aprovechamiento de recursos tanto de RAM como de memoria de programa.
y para mi la principal razon:
4-. Todos los ejermplos que tiene microchip estan en este lenguaje, por lo que cuando me puse a utilizar el MIWI solo tenia que modificar lineas y no pasar todo a otro lenguaje.

Parece que hay mucha gente que aqui utiliza c18, me estraña ya que no vi muchas ejemplos colgados en el foro con este lenguaje.
Un saludo
10/02/2012 #33

Avatar de Meta

Basalto dijo: Ver Mensaje
[...]

Parece que hay mucha gente que aqui utiliza c18, me estraña ya que no vi muchas ejemplos colgados en el foro con este lenguaje.
Un saludo
Exactamente he notado eso desde hace tiempo.

Recuerdo que aquí y en pekín se usaba mucho el CCS. Ahora le están dando el C18 que aunque dicen que es algo inferior al CCS no se en qué, la ventaja que es de Microchip y tiene todo de entrada, en cuanto al CCS tarda mucho más tiempo.

Si vas a estudiar a la universidad o ciclo frmativo usarás el ASM si o si porque debes aprender com funciona un PIC por dentro.

Saludo.
11/02/2012 #34

Avatar de dannyy

bueno ya!, estoy convencido y quisiera aprender el C ,como dicen "en esta vida hay que aprender de todo para sobrevivir" pero cual seria mejor el c18, el ccs, el mikroC, o el basic,el mikrobasic,proton,pic basic pro,o el niple porfavor cual seria el mejor y que sea gratuito

de todos los mencionados e encontrado gratuitamente pero el c18 y todas las series(10f,12f,16f,18f,33f,ds pics)no se si sera gratuito creo que es un programa por cada series de pics alguien me lo puede decir por favor

meta tu que sabes bien de esto me lo dirías por favor me seria de gran ayuda gracias
porque escuche que hay el c10/12/16, el c18 y el c30 pero creo que ai mas
sera gratuita el programa?

---------- Actualizado después de 7 minutos ----------

cual es mejor o mejor dicho cual tiene mejor rendimiento o cual aprovecha mejor la memoria rom y ram
el basic(proton,pic basic pro,mikro basic,etc) o el c(ccs,mikroc,etc)
otra pregunta si no fuera tanta amolestia
ARM
Atmel
Cypress
Digi
Diodes
Ember
Energy Micro
Fairchildsemi
FreeScale
FTDIchip
Fujitsu
Hitachi
Holtek
IDT
Infineon
Intersil
JMicron
LSI
Maxim-IC
Micrel
Microchip
Microsemi
National
NEC
Nuvoton
Oki
On Semi
Parallax
Philips
Picaxe
Rabbit
Renesas
Rohm
Samsung
Semtech
Silabs
STMicroelectronics
TI
Toshiba
Winbond USA
Xmos
el C dices que puede programar todos estos pics no?
y el basic como el programa "proton" puede hacerlo tambien?
11/02/2012 #35

Avatar de Meta

Hola:

No lo se todo, te diré algo.

De los compiladores no es mejor uno ni otro, lo mismo para los lenguajes de programación, sólo usas el mejor que se adapte a tus necesidades o simplemente por el más que te gusta.

En mi caso prefiero el C18, ya que me enteré, el CCS no es un C estandar y más cosas que no favorece, el Mikro C, tiene las librerías bien cerrada, te quita libertad. El C18, no se que pasó, antes todo el mundo usaba el CCS y ahora le dieron por meterse al C18 si usas el PIC18F.

El lenguaje más recomendable de alto nivel es el C a nivel mundial, porque lo verás por todas partes, no significa que sea el mejor. Hay más ejemplos del C incluidos libros. El ASM ya es diferente por cada marca y familia, te volverías loco. El más optimizado a máquina del nivel alto es el C, siempre lo ha sido, Basic y demás son mucho más alto nivel, incluso má fácil que C. C tiene mucha más ventajas en la mayoría de las cosas, otras no tantas.

Recoomendable a escala mundial es C, si te centras en los PIC aprendes ASM al menos por el aire primero para que sepa de que va este mundo realmente, este es un buen libro para empezar www.pic16f84a.org

Usted decide.

Un cordial saludo.
11/02/2012 #36

Avatar de Moyano Jonathan

En mi caso prefiero el C18, ya que me enteré, el CCS no es un C estandar y más cosas que no favorece, el Mikro C, tiene las librerías bien cerrada, te quita libertad. El C18, no se que pasó, antes todo el mundo usaba el CCS y ahora le dieron por meterse al C18 si usas el PIC18F.
El problema meta no es que se haya dejado de usar CCS ..es más en donde realizo mis estudios los profesores que tienen empresas de desarrollo usan CCS para los productos que venden ...no por que sea más fiable o mejor...sino por que es más sencillo de aprender que C18 en algunos aspectos, tiene muchas funciones precompiladas que hace que trabajar con CCS sea más cómodo para desarrollar.

Ahora que pasa...Microchip tiene todas sus librerías desarrolladas en C18,C30,C32,etc. Entonces hay que aprender C18 para poder empezar a entender como funcionan sus ejemplos y librerías...esto nos trae grandes ventajas como por ejemplo:

Tenemos que desarrollar un menú de control para una máquina industrial que usa un controlador en base a tecnología de microchip usando un panel TFT touch.

Microchip tiene librerías desarrolladas para dichos menúes..como así también para las pantallas TFT. Entonces si aprendemos el lenguaje desarrollado por ellos podemos acceder al uso de sus librerías sin mayores inconvenientes acotando los tiempos de desarrollo.

En fin cada uno adapta el uso de los compiladores a sus necesidades..no creo fervientemente que uno sea mejor que otro.
11/02/2012 #37

Avatar de dannyy

pero el c18 se paga? o es gratuito asi como el c32 y demas
11/02/2012 #38

Avatar de Basalto

El normal se paga http://www.microchip.com/stellent/id...cName=en010014, pero puedes bajarte la versión de evaluación o la LITE. No se lo que te permiten hacer. Un saludo
12/02/2012 #39

Avatar de Moyano Jonathan

pero el c18 se paga? o es gratuito asi como el c32 y demas
Todas las versiones tienen la versión demo por 60 días. Dentro del periodo de prueba podés usar el compilador de manera completa con todas las opciones de optimización. Luego del periodo de prueba podés usar el compilador pero sin las optimizaciones ...ahora como dicen más arriba...la versión lite o student te sirve para empezar.
12/02/2012 #40

Avatar de Meta

dannyy dijo: Ver Mensaje
pero el c18 se paga? o es gratuito asi como el c32 y demas
Hola:

No te preocupes en ello. Sólo cómpralo. En caso de querer tenerlo, pídeselo a un amigo que pagó por él o cómpraselo barato. Eso si, cuando se actualicen, hay qu epagar las novedades si son notables. Subversiones para corregir errores y añadir más PIC son gratuitas. Hay muchas alternativas para conseguir el C18 o el C32 sin pagar, por ejemplo los 60 días de pruebas. Hay más aún que muchos sabemos y no hace falta nombrarlo por aquí, es el que le gusta a casi tod@ el mundo.


En lo que dijo Moyano, entonces es bueno C18 por si das el salto a C32, una empresa donde vivo, usan el PIC32 desde hace 4 años. Lo que me llama la atención, es que por fin pusieron PIC32 de 28 y 40 pines con USB 2.0 y todo, es de agradecer porque s epuede poner en la protoboard, eso si, si quieres potencia de 32 bits real o manejo de 32 bits de puertos, ya son PIC32 de 60, 80 y 100 pines. Por ahora, losdel foro no les interesa mucho aprender PIC32 de 28 y 40 pines como los de 16F886/887 y 18F4550/2550. Cuando empeice haber más información, ya será otro cantar.

PIC32 de 28 y 40 pines

Entonces mejor aprender C18, más motivo tengo. De todas maneras, el C18 va a cambiar con el tiempo para que sea más cómodo que ahora. ¿Cuándo?

Moyano, gracias por la información.

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.