TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: pibe en 22 de Enero de 2009, 09:20:53

Título: Como empiezo con C?
Publicado por: pibe en 22 de Enero de 2009, 09:20:53
Hola Ceistas!  :)

Yo hace años que vengo programando en asm los PICS, pero a veces cuando hay rutinas complejas me pierdo... me quedo en blanco, me da ataques de autismo  :mrgreen:
Por eso quería empezar a entender C.
Ahora bien, no tengo ni las mas  º"$%\  idea de lo que es, ni las diferencias entre C , C#, C+, C++ y todo lo que empiece con C.
Quisiera que los expertos en este lenguaje me aconsejaran como empezar, que libros debería leer (algun libro a prueba de tontos) , y algunos links a programitas fáciles, o links de tutoriales, que programa usais para pasar a HEX (no tengo ni idea como se dice "ensamblar" para C).

Bueno, gracias por su atención y espero sus ayuditas!
Título: Re: Como empiezo con C?
Publicado por: RALF2 en 22 de Enero de 2009, 09:35:53
Que tal pibe puedes empesar leyendote el manual de ccs,  en internet hay muchos manuales sobre el ccs  :mrgreen:
O puedes comprarte este libro (http://www.agapea.com/libros/COMPILADOR-C-CCS-Y-SIMULADOR-PROTEUS-PARA-MICROCONTROLADORES-PIC-isbn-8426714951-i.htm) para empesar   :-/

Saludos
Título: Re: Como empiezo con C?
Publicado por: jim_17 en 22 de Enero de 2009, 09:48:49
Exactamente que es lo que quieres, aprender el lenguaje y despues aprender a programar o aprender a programar PIC's en el lenguaje C directamente ?

Si quieres aprender como se estructura un programa en C, el tipo de datos, como realizar funciones, como realizar pequeños programas para el ordenador como sumar variables y mostrarlas en pantalla, te recomiendo que busques en internet algun tutorial de C.

Si quieres aprender a programar PIC's directamente echale una ojeada a este post: http://www.todopic.com.ar/foros/index.php?topic=14634.0 (http://www.todopic.com.ar/foros/index.php?topic=14634.0)

Igualmente yo creo que es mejor que primero le des una ojeada al lenguaje C para programar el PC, y luego te dedicaras exclusivamente al C de CSS así entenderas mejor como van las estructuras en C, como se declara una variable, como se declara una constante, etc.

Salu2.
Título: Re: Como empiezo con C?
Publicado por: AnFe en 22 de Enero de 2009, 09:58:56
Busca los apuntes "Aprenda C como si estuviera en primero" de la universidad de Navarra. Es de lo mejorcito que hay para aprender C por tu cuenta. Está orientado para la programación en PC, pero creo que así es más fácil aprender y ya luego pasas a los PICs.

Un saludo
Título: Re: Como empiezo con C?
Publicado por: migsantiago en 22 de Enero de 2009, 13:27:58
El mejor libro para aprender lenguaje C es

El Lenguaje de Programación C (Brian W. Kernighan, Dennis M. Ritchie)

Es el manual del lenguaje C.
Título: Re: Como empiezo con C?
Publicado por: pibe en 22 de Enero de 2009, 17:32:51
Gracias por vuestros aportes. Muchisimas tenkius.
A ver si de a poco me voy animando
Título: Re: Como empiezo con C?
Publicado por: Mario en 22 de Enero de 2009, 18:30:37
Igualmente yo creo que es mejor que primero le des una ojeada al lenguaje C para programar el PC, y luego te dedicaras exclusivamente al C de CSS así entenderas mejor como van las estructuras en C, como se declara una variable, como se declara una constante, etc.

Coincido con jim_17.

Empecé con ensamblador y me moví a BASIC (PBP) pero ahora quiero meterme a los µicros de 16 bits y para eso necesitas C, pero no solamente C para µicros, necesitas saber qué es una estructura, un puntero, y demás conceptos inherentes al lenguaje.

He adquirido varios libros y te puedo decir que este es el mejor:
C Primer Plus de Stephen Prata (http://www.amazon.com/Primer-Plus-5th-Stephen-Prata/dp/0672326965/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1232654741&sr=8-1)
voy en el capítulo 2 (terminado) y te dice cómo y para qué son cada cosa (por qué se escribe (void) entre paréntesis, por ejemplo) y te lleva de la mano sin tratarte como un tonto, aunque asume que no sabes nada, por eso me gusta.

Claro, deberás buscar cualquier compilador de C (uso Turbo C) para realizar los programas.


El mejor libro para aprender lenguaje C es

El Lenguaje de Programación C (Brian W. Kernighan, Dennis M. Ritchie)

Es el manual del lenguaje C.

También es cierto, ese libro lo tengo pero..... si eres principiante como yo, te recomiendo mejor el de Prata.
http://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=pd_bbs_sr_3?ie=UTF8&s=books&qid=1232654741&sr=8-3
También se le conoce como el "libro blanco" ó, con su apodo mas común "la biblia del C"  :D

Si lo que quieres es tener un conocimiento rápido de cómo programar µicros de Microchip en C, puedes comprar este:
http://www.amazon.com/Programming-8-bit-PIC-Microcontrollers-Interactive/dp/0750689609/ref=sr_1_1?ie=UTF8&s=books&qid=1232654783&sr=8-1
(puedes ver mi crítica en ese enlace).



Estos dos libros los tengo y no me metí mucho con ellos. A decir verdad, el de 32 bits ni lo he abierto:
http://www.amazon.com/Programming-16-Bit-PIC-Microcontrollers-Technology/dp/0750682922/ref=sr_1_1?ie=UTF8&s=books&qid=1232654868&sr=8-1
http://www.amazon.com/Programming-32-bit-Microcontrollers-Exploring-Technology/dp/0750687096/ref=sr_1_1?ie=UTF8&s=books&qid=1232655785&sr=1-1

El tiene una página y (bueno, sabe que he comprado sus libros) te ayuda mucho en tus dudas, aunque solamente sean para preguntar cuándo saldrán sus libros  :mrgreen:


La más nueva adquisición es este:
http://www.amazon.com/Microcontrollers-Assembly-Language-Using-Family/dp/1584505834/ref=sr_1_1?ie=UTF8&s=books&qid=1232654997&sr=8-1

Acabo de empezar el capítulo 3 (ensamblador) y me parece muy bueno, ya que te explica con algoritmos y te proporciona código tanto en ensamblador como en C, te explica las "maneras" de interpretar comandos en C utlizando ensamblador (ASM30).


Pero si lo que deseas es un "rapidín", esto me ayudó y me dió animos para levantar el libro de Prata:
http://computer.howstuffworks.com/c.htm


Espero te ayude la información, he estado algo desconectado del foro pero todo se debe a cuestiones que se necesitan atender (mi novia hermosa  ;-))
Título: Re: Como empiezo con C?
Publicado por: pibe en 22 de Enero de 2009, 19:58:55
Mario, una máquina!
Gracias!
Título: Re: Como empiezo con C?
Publicado por: MGLSOFT en 22 de Enero de 2009, 22:53:45
Excelente guia, Mario !! :) :)
Título: Re: Como empiezo con C?
Publicado por: BLACKPIC en 26 de Enero de 2009, 11:29:21
Hola amigos.
Este post es exelente para a clarar las dudas de los que realmente iniciamos al C, digo iniciamos por que yo tambien estoy metido en eso para este año, este es uno de mis proposito aprender lo mas que se pueda de C, tanto para PIC como para PC...

Gracias a Mario por la exelente guia que nos has brindado para los principiante que deseamos iniciar pero no sabemos por donde...

Una pregunta cual recomiendan mas para PC, cual es mas potente jejejeje  C , C#, C+, C++?

                   Ah si los aporte fueran en Español tambien serian buenos ya que avemos alguno que no sabemos ingles....
Título: Re: Como empiezo con C?
Publicado por: Mario en 26 de Enero de 2009, 16:36:28
cual recomiendan mas para PC, cual es mas potente jejejeje  C , C#, C+, C++?

Mira, sobre PC no se mucho, pero si te puedo decir esto, para C++ necesitas olvidar algunos conceptos e instrucciones. También compré el libro de Prata para C++ (http://www.amazon.com/Primer-Plus-5th-Stephen-Prata/dp/0672326973/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1232994867&sr=8-2) y por ejemplo, el printf se cambió por una instrucción que se llama cout. Deberías preguntarle a el jefe Redpic o a reintiel (creo que así es su usuario), al parecer ellos saben muuuuuuuuuuuuucho de eso.

Creo (y esto es un punto de vista nada informado y muy pero muy ambiguo con tres tragos de tequila DON JULIO) que deberás preguntarte antes de empezar a buscar un lenguaje de programación para PC qué es lo que quieres. Acá casi todos utilizan Java o Delphi (si veo el programa medio le entiendo, pero no sé cómo programar) y dicen que con eso se hace todo. Pero conozco gente que dice que C++ y/o Visual C es mejor y que compacta más el código, pero es más complicado aprender.

Te recomiendo leas las críticas a los libros en los enlaces que se han proporcionado; las críticas ayudan bastante para saber si será buena la inversión o no.

Saludos de aquí para allá  :)
Título: Re: Como empiezo con C?
Publicado por: BLACKPIC en 26 de Enero de 2009, 21:21:53
Gracias Mario por tu pronta respuesta, te cuento que el amigo Henry(hlak07) me recomendo C# para pc tambien con el libro en castellano que recomienda Migsantiago en este post, pienso iniciarme con CCS para pic y me comento que el libro me ayudaria para ambos...
Título: C++ = C de CCS para PIC's
Publicado por: palmas5678 en 29 de Enero de 2009, 14:58:39
Saludos amigos de la lista. Yo también quiero aprender el C de CCS, para programar los pic de microchip (estaba iniciandome en assembler, pero quiero un lenguaje de alto nivel, para entendrlo mejor) pero tengo alguna confusión con sus respuestas: Yo aprendí algo de C++ en la universidad y también por mi cuenta, todos estos conocimientos (definiciones, sintaxis,etc) de ESTE C que aprendí, es bueno para el C de CCS? es lo mismo? Yo no quiero aprender C para hacer programas para el monitor, sino para trabajar con pics. Disculpen mi ignorancia, pero esto me ha descuadrado un poco. Gracias.
Título: Empezar a compilar en C de CCS
Publicado por: palmas5678 en 29 de Enero de 2009, 15:05:30
editado... no se da soporte a software sin licencia. Leete las normas
Título: Re: Como empiezo con C?
Publicado por: migsantiago en 29 de Enero de 2009, 16:26:36
Hasta donde sé, el C de CCS no es orientado a objetos. No puedes usar clases, objetos ni métodos, tendrás que usar estructuras, subfunciones y variables.
Título: Re: Como empiezo con C?
Publicado por: victorga74 en 13 de Febrero de 2009, 15:58:55
 Y  para nosostros lo probes no hay nada

Saludos :-/
Título: Re: Como empiezo con C?
Publicado por: pibe en 19 de Febrero de 2009, 15:53:09
Entonces, a vuestro parecer...
 Cuál compilador usar? CSS , PIC C o C18?
 Para cuál tengo los mejores tutoriales? (necesito un tutorial a prueba de tontos)
Título: Re: Como empiezo con C?
Publicado por: migsantiago en 19 de Febrero de 2009, 16:34:25
CCS Cuesta como 400USD el tener la licencia.
http://www.ccsinfo.com/

C18 es gratuito sin optimizaciones. Con optimizaciones tiene un costo.
http://www.microchip.com/

SourceBoost. Es gratuito pero solo maneja unos cuantos pics.
http://www.sourceboost.com/

Aquí una lista de todos los compiladores de C que hay para PICs, unos nunca los había visto.

Microchip
Mikro Electronica
IAR
Forrest Electronics
Hi-Tech Software
Source Boost Technology
Byte Craft Limited
B. Knudsen Data
CCS
Green Hills
Imagecraft
KEIL

 :mrgreen:
Título: Re: Como empiezo con C?
Publicado por: pibe en 19 de Febrero de 2009, 16:58:12
Pero quitando el costo de cada programa. Cuál es el que tenga larga vida, fácil de usar y entender y sobre todo algún tutorial a pruebas de descerebrados.
Título: Re: Como empiezo con C?
Publicado por: septiembre_negro en 19 de Febrero de 2009, 21:19:24
Hola a esperas de que algún experto te comente algo yo también e comenzado a aprender c vengo del pbp y  proton .
 e elegido el ccs por la sencilla razón de que  es uno de los mas extendidos es español encuentras manuales, ejemplos y sobre todo excelentes foros como este en donde la comunidad es muy grande y activa y siempre abra alguien que tenga a bien tendernos una mano algo que es muy muy importante .
Título: Re: Como empiezo con C?
Publicado por: javi_max en 21 de Febrero de 2009, 12:34:54
Hola a todos
   Me encuentro metiendo la cuchara en este foro y quería consultar si nos podrían dar una mano a los que no sabemos cómo empezar a programar en C e ir haciendo un manual sito
Yo les quedaría agradecido y creo que muchos también lo estarían
 se podra digan que si  :-/  :-/
Título: Re: Como empiezo con C?
Publicado por: septiembre_negro en 21 de Febrero de 2009, 13:34:18
Hola
Lo que comentas ya esta echo  yo estoy comenzando por acá  :mrgreen:

http://www.todopic.com.ar/foros/index.php?topic=14634.0
Título: Re: Como empiezo con C?
Publicado por: javi_max en 21 de Febrero de 2009, 14:49:18
Muchas gracias
Estuve mirando los link y parecen interesantes hoy en la noche le dicare un buen rato para ver si entiendo algo
Temes idea donde hay alguna guía o criterios para realizar las rutinas    :-)
Título: Re: Como empiezo con C?
Publicado por: septiembre_negro en 21 de Febrero de 2009, 15:13:11
Pues mira  par entender el lenguaje en cualquier libro de c para pc, encuentras los conceptos básicos.
Ahora que si entiendo bien tu pregunta y lo que quieres es una guía de cómo hacer  las rutinas, como tal no e encontrado nada a reserva de que algún experto te comente algo creo que no  hay mas que estudiar los ejemplos, que hay en este hilo . Aunque cualquier libro que trate sobre algoritmos en los primeros capítulos de puede ser de ayuda
Título: Re: Como empiezo con C?
Publicado por: MikeT en 22 de Febrero de 2009, 14:31:09
Hola, yo soy novato en C, asi que empece por "comprar" en tiendas "La Mula", todo lo referente e este idioma. Muchos me recomendaron el de Kernigham y Ritchie, lo empece a leer y la verdad es que desde mi punto de vista es un poco dificil de digerir, asi que segui buscando.
Un amigo que estudio C en la facultad me presto "Aprenda C en 21 dias", (dias de 100 hs, claro), pero me resulto mucho mas amigable que los demas que estuve viendo, son como 500 paginas. En tiendas La Mula lo venden pero esta incompleto, aunque vale la pena adquirirlo.

Ademas para ejercitar, me baje el compilador de C llamado Dev C++ que es gratuito, donde escribo los ejemplos del libro y lo voy llevando bien.

Tambien, como el ANSI C es igual (al menos en superficie), si algun concepto no me queda claro, busco lo mismo en otro libro, y asi lo entiendo mejor.

Saludos
Título: Re: Como empiezo con C?
Publicado por: Mario en 22 de Febrero de 2009, 21:21:01
O puedes comprarte este libro (http://www.agapea.com/libros/COMPILADOR-C-CCS-Y-SIMULADOR-PROTEUS-PARA-MICROCONTROLADORES-PIC-isbn-8426714951-i.htm) para empesar   :-/

Ya compré el libro, y me sirve para saber cómo utilizar un poco proteus; explica cómo son las condicionantes en C (algunas como switch e if) y provee código para realizar interfaces con I²C, SPI, RS232 y algo que no había visto: USB.

También contiene información sobre el AD, PWM, TIMERs, y otras funciones.

Me gusta más el libro de Bates para los conceptos de C (tiene más ejemplos con código para MPLAB), pero este libro definitivamente es mejor en cuestión de simulación con Proteus, ya que Bates, aunque utiliza proteus, no introduce tánta simulación como este.

Buen libro a muuuuy buen precio (199 pesos mexicanos, aprox. 13 dólares americanos).
Título: Re: Como empiezo con C?
Publicado por: handpic en 01 de Marzo de 2009, 18:43:51
hola pibe,

yo soy nobato también en el C. leyendo tus comentarios parace que los hubiera hecho yo mismo.

Yo he comenzado con un libro normal de C, para entender como se estructura un programa en C, cuales son sus partes, que ha de contener, como se delcaran las cosas... etc.

Luego, en este foro hay muchos programas y "ejemplitos en C". Comienza con programas sencillitos y chorras, pero te enseñan como ir declarando las cosas y se comentan varias formas de hacer las cosas. Hay unos apuntes de C para microcontroladores, que describen las ordenes para un compilador de CCC. Poco a poco y destripando los programas de ejemplo y a base de cabezazos, se va aprendiendo.

La verdad es que he aprendido mas del foro que del libro. Las instrucciones que encuentro en el compilador las busco y las veo aclaradas en el libro, ya que el libro está orientado a C para una máquina y no para un pic y muchos ejemplos se hacen para escribir cosas en la pantalla, cosa de la que no dispongo en un pic, mucho mas básico.

Saludos,
Título: Re: Como empiezo con C?
Publicado por: ppyote en 01 de Marzo de 2009, 19:09:07
yo llevo cosa de 1 mes con c y se aprende bien...
me costo mas aprender asm.... normal.... jejjejjeje

si veis todos los ejemplos disponibles todo sera coser y cantar... es todo muy intuitivo....

y lo que so sepais.... a san buscador del foro o san google....

suerte a los que empiezan en c
Título: Re: Como empiezo con C?
Publicado por: blackcat en 01 de Marzo de 2009, 19:26:58
Hola Ceistas!  :)

Yo hace años que vengo programando en asm los PICS, pero a veces cuando hay rutinas complejas me pierdo... me quedo en blanco, me da ataques de autismo  :mrgreen:
Por eso quería empezar a entender C.
Ahora bien, no tengo ni las mas  º"$%\  idea de lo que es, ni las diferencias entre C , C#, C+, C++ y todo lo que empiece con C.
Quisiera que los expertos en este lenguaje me aconsejaran como empezar, que libros debería leer (algun libro a prueba de tontos) , y algunos links a programitas fáciles, o links de tutoriales, que programa usais para pasar a HEX (no tengo ni idea como se dice "ensamblar" para C).

Bueno, gracias por su atención y espero sus ayuditas!

No quiero desmotivarte y no creas! .. a mi me dan ataques de autismo aun con C ... de cierto en cierto os digo: entre mas grande y mas genial es la solucion mayor sera el problema ... pero el problema que sigue!

Lo mejor es cualquier libro de C ... ese de aprender C como si estuviera en primero es bueno ... sin embargo, es mas computacional que algo para micros pero puede servir ... te seria fabuloso que lo combinaras con ejemplitos que funcionen y algun compilador de C como CCS o C18 o C30

Saludos!





Saludos!
Título: Re: Como empiezo con C?
Publicado por: handpic en 02 de Marzo de 2009, 17:13:35
Hola de nuevo,

Yo comencé con varios libros de microcontroladores basados en 16f84, como el de RAMA, para mi muy bueno, pero está orientado a ASM. y por cierto que me costó menos el ensamblador que lo que me está costando el C.

Lo que si que es aprovechable es la forma de esquematizar y hacer el diagrama de flujo de lo que quieres que haga el programa.

En efecto, a mi me pasaba lo mismo. Intentaba escribir el código directamente y llega un momento en el que no sabes que rutinas has hecho y cuales has dejado pendientes. Eso se soluciona haciendo el diagrama de flujo y, creeme, se pierde menos tiempo si partes de un buen diagrama, porque luego todo es traducirlo al lenguaje que quieras. Es mejor perder el tiempo en hacer un buen diagrama de flujo que intentar hacerlo directamente en programación. Bueno, como en todo habrá excepciones. Seguro que hay cocos que son capaces de hacer un programa complejo directamente en el lenguaje que quieren.

Y hacer un diagrama de flujo es muy sencillo. se tratan de bloques que simbolizan lo que quieres que vaya haciendo el programa, mas tarde esos bloques se irán transformando en una o varias líneas de código, según su complejidad.

Espero que te sirva de ayuda para que no te quedes mas bloqueado.
Título: Re: Como empiezo con C?
Publicado por: pibe en 02 de Marzo de 2009, 18:16:26
Handpic, parece que estuviese leyendo mis propias palabras que le he dicho a un novato hace una semana atrás.
 El diagrama de flujo es imprescindible.
Sin diagrama de flujo te tiras 8 dias codificando, 3 dias arrancándote los pelos porque te perdiste, otros 3 dias pateando al perro, otros 4 dias sin dormir pensando por qué no funciona.  18 dias y aún no funciona. Te decides a hacer el diagrama de flujo, otros 3 dias, recodificar desde 0 otros 3 dias, 3 dias pateando al perro, 4 dias sin dormir por el dolor en en cuero cabelludo y el pié, debugear 2 dias más.
 Total= 33 dias

Haces el diagrama de flujo, te tiras 3 dias arrancándote los pelos, 3 dias pateando al perro, 4 dias sin dormir por el dolor en en cuero cabelludo y el pié, 1 dia para codificar, 2 dias para debugear.
Total= 13 dias
Título: Re: Como empiezo con C?
Publicado por: MLO__ en 03 de Marzo de 2009, 01:30:37
Estoy de acuerdo, sin diagrama de flujo podria sucederte lo del avatar de pibe!
Título: Re: Como empiezo con C?
Publicado por: Suky en 03 de Marzo de 2009, 02:23:22
 :D  :D  :D Es muy cierto que es imprescindible! No solo para uno, sino para un tercero que quiera entender lo que has hecho. Además dejas colgado el proyecto una semana, luego lo retomas y pierdes 2 días intentando entender lo que ya has hecho.  :x
Título: Re: Como empiezo con C?
Publicado por: ASTROCAR en 03 de Marzo de 2009, 05:03:05
jajaja, hola tienen mucha razon eso siempre me pasa por no hacer un buen diagrama de flujo y dejo por razones de ocupacion una aplicacion sin terminar y cuando la retomo pierdo dias repasando todo para poder tomar el hilo de lo que habia hecho lo mejor es como ya ustedes lo comentan hacer un buen diagrama de flujo te lleva a un excelente resultado.

Saludos y como regla lo primero es hacer lo ya dicho DIAGRAMA DE FLUJO.
Atten.
Alexander Santana.
Barcelona-Venezuela.
Título: Re: Como empiezo con C?
Publicado por: handpic en 03 de Marzo de 2009, 06:56:37
Bueno, aunque mal de muchos consuelo de tontos, me alegro de no ser el único que le pasa esas cosas.

El caso es que uno cae una y otra vez en la misma piedra. vuelves a plantearte un programa y estás deseando hacer el código... y al final, te aburres, lo dejas, vuelves a él y ya estás perdido del todo.... al final mucho tiempo perdido y a empezar de nuevo con un buen diagrama.....

No se vosotros, yo acabo siempre copiando la configuración y haciendo un programa nuevo.... :D
Título: Re: Como empiezo con C?
Publicado por: handpic en 03 de Marzo de 2009, 07:14:17
Se me olvidaba una preguntilla...

Alguien conoce un programa que facilite la realización de los diagramas de flujo. Estoy cansado del lapiz y además me gustaría guardar los proyectos completamente informatizados.

Me ocurre que hago el diagrama en una hoja grande y luego no las puedo escanear......

Saludos,
Título: Re: Como empiezo con C?
Publicado por: Nocturno en 03 de Marzo de 2009, 09:42:16
Microsoft Visio (http://office.microsoft.com/es-es/visio/FX100487863082.aspx)
Título: Re: Como empiezo con C?
Publicado por: pibe en 03 de Marzo de 2009, 09:44:09
Yo uso el Edraw, me va muy bien y es freeware

http://www.edrawsoft.com/freemind.php
Título: Re: Como empiezo con C?
Publicado por: MGLSOFT en 03 de Marzo de 2009, 10:02:16
CCS tiene herramientas de documentacion...
Título: Re: Como empiezo con C?
Publicado por: ASTROCAR en 03 de Marzo de 2009, 10:49:50
Hola muy buena herramienta tener una aplicacion en la pc con la cual podrmas hacer nuestro diagrma y ademas poder guardarlo ya que asi como le pasaba al colega le pasa a mucho que lo hacemos en papel y luego lo perdemos y no podemos tener una buena organizacion de todo el proyecto completo.

Saludos y analizare esas aplicaciones para ver con cual me caso.
Atten.
Alexander Santana.
Bercelona-Venezuela.
Título: Re: Como empiezo con C?
Publicado por: handpic en 03 de Marzo de 2009, 13:12:28
Hola a todos,

No se muy bien donde colgar mi duda, pero como aquí estamos los novatos del C, seguro que os viene bien la cuestión.

Para eliminar el gestor de interrupciones de C, he sustituido la llamada a las interrupciones por ésta:
#INT_GLOBAL
void Global_isr() 
{
   if (INTF==1)
   {
   Int_Externa:  //Interrupción por detección de llegada de un flanco a RB0
      INTCON=0x00;
      FSR=puntero;
      INDF=TMR0;
      TMR0=0x00;
      if (flanco==1)
         {
         Ext_Int_Edge(L_to_H);
         flanco=0;
...... etc.

El problema es que no se ubicarle en la posición 0x04 para que el vector interrupción la siga. El compilador también me da error por ello:
                                 Unprotected call in a #INT_GLOBAL
He intentado ponerle #org0x04 antes del código de la interrupcion, pero no me lo acepta tampoco.
He probado con #build pero tampoco ha resultado.

En ASM no hay estos problemas....

Una vez que situe el código correctamente, comenzará atendiendo a la interrupción o el solo saltará al MAIN.

gracias...
Título: Re: Como empiezo con C?
Publicado por: handpic en 04 de Marzo de 2009, 16:49:00
Hola de nuevo,

como creo que la pregunta puede tener interés para todo el mundo, la he puesto en un nuevo tema con el siguiente título:

Manejo de Interrupciones en C
http://www.todopic.com.ar/foros/index.php?topic=25058.0

Gracias y saludos,
Título: Re: Como empiezo con C?
Publicado por: jhozate en 11 de Marzo de 2009, 14:46:53
bueno, a mi como q me dio envidia y quisiera migrar al C aunque no soy un experto en el assembler, leyendo por ahi me doy cuenta q los programas en c son mas sencillitos.
siempre me ha gustado el C, aunque soy un mar de dudas.tengo las siguientes dudas
1- Q necesito para empezar a programar en C?
2-Q es el C18? es solo para los PIC18 o me sirve para cualquiera?
3-Es cierto q en el C18 tambien puedo incluir lenguaje assembler?

bueno por ahora estas son las dudas
gracias
Título: Re: Como empiezo con C?
Publicado por: handpic en 11 de Marzo de 2009, 19:34:46
Hola Jhozate,

Yo solo te puedo contestar a la primera pregunta y la primera respuesta es clara... Ganas de aprender.... :-/
Pero eso lo daremos por sentado.

Bueno, necesitas tener conocimientos de las estructuras de un programa en C, para saber de que constan, como se declaran las distintas cosas, etc,... Para eso yo me compré un libro normal de C. Seguro que puedes encontrar también información sobre C en internet, pero la verdad, me regalaron el libro y me ha venido muy bien.

Luego necesitas un compilador para los programas, es decir, el que pasará tus programas a hexadecimal parar ser grabados en el pic. El mas popular parece ser el CCS. En función del compilador, necesitas las instrucciones particulares para cada compilador, como por ejemplo, como se denomina un pin en el programa, o una puerta...., ya que C es mas genérico.

Busca el tema de ejemplitos en C de este mismo foro y, ahí irás viendo como se hacen los distintos programas y de diferentes formas.

En cuanto al C18, creo que es un compilador de microchip para los pics de la familia 18. Si son estos los pics que vas a programar, parece que le sacan mas jugo con este software.

Espero haberte servido de ayuda.

Saludos,
Título: Re: Como empiezo con C?
Publicado por: jhozate en 11 de Marzo de 2009, 20:30:27
mmm voy a tratar de conseguirme algun libro de C, yo solo tengo algunas nociones basicas de C..el assembler me ha parecido excelente pero no me quiero quedar solo en assembler, ahora, en CCS puedo programar cualquier PIC incluido el 18F? ...claro q pienso q deberia datearme bien con las funciones en C y luego empezar desde cero con el encendido y apagado de un led en el 16F84, por lo pronto ya conseguí un manual de CCS ..en todo caso muchas gracias
Título: Re: Como empiezo con C?
Publicado por: jhozate en 12 de Marzo de 2009, 13:39:19
es cierto q el CCS es solo para PIC's de gama baja y q no sirve para los gama media con el 16F877??
Título: Re: Como empiezo con C?
Publicado por: MLO__ en 12 de Marzo de 2009, 15:07:36
Hola.

No es cierto. Con CCS podes programar desde la serie 10F hasta dsPIC.
Título: Re: Como empiezo con C?
Publicado por: Mario en 12 de Marzo de 2009, 15:08:06
es cierto q el CCS es solo para PIC's de gama baja y q no sirve para los gama media con el 16F877??

Si y no.

Si porque venden compiladores para gama baja, media y alta.

No porque.... pues solamente se debe comprar el compilador para la gama requerida.

La gama baja no es tan cara (50 dólares), la media ya está algo cara (150 dólares); a diferencia de PBP, donde la licencia cuesta 250 dólares y permite la programación desde la gama media hasta la alta........... pero es BASIC.
Título: Re: Como empiezo con C?
Publicado por: handpic en 12 de Marzo de 2009, 20:45:32
Hola jhozate,

Hay manuales para descargar y mucha información por el foro. Empiezan desde cero y van creciendo en dificultad y, como lo han ido editando varias personas, puedes ver diferentes formas de hacer lo mismo.

Saludos,
Título: Re: Como empiezo con C?
Publicado por: jhozate en 13 de Marzo de 2009, 00:17:08
bueno pero entonces en q compilador puedo iniciar y q sirva para la mayoria de los micros y q sea en lenguaje C, claro q para qué exigir versatilidad si casi siempre se encasilla hacia los  16F84, 16F877 y los 18F
Título: Re: Como empiezo con C?
Publicado por: handpic en 13 de Marzo de 2009, 22:09:38
Como te he comentado, yo me estoy iniciando y he comenzado con el CCS y su adaptacion al Mplab, para poder realizar simulaciones.

Saludos,
Título: Re: Como empiezo con C?
Publicado por: pajaro en 19 de Marzo de 2009, 21:29:15
hola amigo

me lei el hilo, y yo tambien tengo la misma duda del amigo,
que compilador puedo usar el ccs o el c18.

Yo he trabajado con el compilador borland c y ultimamente con el Dev c++ para programas para pc.
me gustaria decidir entre un compilador u otro: ¿ccs o c18?, por que por ahi vi el c30.
¿si aprendo c18 podre programar serie 16F877A o serie 24F?

con el c18, ¿se pueden programar la serie 18? ¿y la 16 y la 24?

un saludo
Título: Re: Como empiezo con C?
Publicado por: MLO__ en 19 de Marzo de 2009, 21:50:01
C18 es solo para la familia 18 y no mas.
Título: Re: Como empiezo con C?
Publicado por: tortuga en 24 de Marzo de 2009, 06:39:56
Hola amigo. Aquí te dejo una relación de unos cuantos compiladores de C para PIC:


MPLAB-C18 (Microchip). Compilador de la casa Microchip el mismo fabricante que fabrica los PIC. Puedes obtener más información en ingles desde aquí (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014).
MPLAB-C24 (Microchip) como el anterior pero para microcontroladores de 16 bit incluyendo los dsPIC con capacidad de procesamiento de señales digitales, puedes obtener más información aquí (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010065).
MPLAB-C32 (Microchip) para programar Microcontroladores de 32 bits la gama más alta de Microchip. Puedes ampliar la información aquí (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2615&dDocName=en532454).

Los que producen un código más optimizado son estos tres últimos para eso los desarrolladores de los compiladores son los que fabrican los PIC, además en las gamas altas aumenta el Set de instrucciones específicas para C que se le añaden a la CPU y los primeros en aprovechar los recursos Hardware son ellos, sin embargo bajo mi punto de vista no son compiladores populares para el que empieza en la programación de estos dispositivos. Además hay que tener un compilador para cada gama de Microcontroladores y el C18 aunque es un compilador para dispositivos de 8 bits no acepta los de gama más baja incluido el famoso 16F84.

PICC (Hi-Tech). Sin duda el mejor compilador (profesionalmente hablando) hecho por terceros, está disponible para las plataformas Windows, Linux y MAC incluye soporte para la gama de 24 y 32 bits y su código es muy portable, ya que cumple prácticamente con el estándar ANSI C, además admite perfectamente la integración de código ensamblador dentro del C. Pero, como todas las cosas buenas hay que pagarlas la versión profesional completa vale más de 1000$ aunque existe una versión Lite gratis para las tres plataformas que puedes conseguir tras regístrate. Otro inconveniente que le veo es que al ser un producto enfocado al desarrollo profesional no he vistos muchos Kit de aprendizaje, es decir, conjunto de tarjetas preparadas para probar los ejemplos del compilador, hasta para bajarte los manuales de la página del fabricante te tienes que registrar. Puedes obtener más información desde aquí (http://www.htsoft.com/microchip/products/compilers/picccompiler.php).

PCW Compiler (Custom Computer Services). Unos de los compiladores de C para PIC más populares. Yo junto con un grupo de amigos estamos creando un tutorial sobre programación en C utilizando este compilador. El curso esta enfocado para el que empieza desde cero, si te interesa puedes ver lo que llevamos hecho aquí:www.aquihayapuntes.com (http://www.aquihayapuntes.com).

mikroC un buen compilador de C para aprender a programar los PIC, de la página del fabricante http://www.mikroe.com/en/ se puede bajar abundante documentación así como una versión demo del mismo, el fabricante también ofrece compiladores para otros lenguaje como el Basic y Pascal, así como abundantes ejemplos y kit de desarrollo. Sin duda un compilador muy a tener en cuenta a la hora de empezar a programar PIC en C.

MPC (Byte Graft). Otro compilador para PIC en C aunque menos conocido. También permite incluir código ensamblador y se integra con el MPLAP pero ni punto de comparación en cuanto documentación y ejemplos a los dos anteriores, puedes obtener más documentación de este compilador aquí (http://www.bytecraft.com/MPC_C_Compiler_for_Microchip_PIC).

CC5X (B. Knudsen). Otro más, puedes encontrar más información desde aquí (http://www.bknd.com/cc5x/).

SDCC Compiler es un pequeño compilador de software libre para las plataformas Linux, Windows y MAC en el que podemos desarrollar aplicaciones para dispositivos como Intel 8051, Maxim 80DS390, Zilog Z80  y el Motorola 68HC08 actualmente está en fase de desarrollo el poder soportar los PIC de 16 y 18 bits.

De entre todos éstos (bajo mi punto de vista) PCW Compiler y mikroC son los que tienen una mejor relación prestaciones/precio y además disponen de abundante documentación y ejemplos en la red, lo que los hace ideales para empezar a programar PIC en C.

De PCW CCS encontrarás muchos ejemplos, busca en este foro y como he dicho en aquihayapuntes.com (http://www.aquihayapuntes.com) está el tutorial del que te he hablado, espero que le guste a la gente.

Un saludo



Título: Re: Como empiezo con C?
Publicado por: pajaro en 28 de Marzo de 2009, 11:04:12
Hola tortuga

Felicitaciones por la información, muy bien currada...si señor

un saludo
Título: Re: Como empiezo con C?
Publicado por: pajaro en 05 de Abril de 2009, 22:24:39
O puedes comprarte este libro (http://www.agapea.com/libros/COMPILADOR-C-CCS-Y-SIMULADOR-PROTEUS-PARA-MICROCONTROLADORES-PIC-isbn-8426714951-i.htm) para empesar   :-/

Ya compré el libro, y me sirve para saber cómo utilizar un poco proteus; explica cómo son las condicionantes en C (algunas como switch e if) y provee código para realizar interfaces con I²C, SPI, RS232 y algo que no había visto: USB.

También contiene información sobre el AD, PWM, TIMERs, y otras funciones.

Me gusta más el libro de Bates para los conceptos de C (tiene más ejemplos con código para MPLAB), pero este libro definitivamente es mejor en cuestión de simulación con Proteus, ya que Bates, aunque utiliza proteus, no introduce tánta simulación como este.

Buen libro a muuuuy buen precio (199 pesos mexicanos, aprox. 13 dólares americanos).


Hola Amigo

Ese libro me lo han recomendado un par de foros que he visitado por la red,  pero me gustaria saber si es tan bueno como dicen.
¿que es lo que te enseña el libro?, proteus y yo nos conocemos desde hace un tiempo, pero con ccs estoy desde hace semanas en ello, pero antes de comprar el libro queria saber si merece la pena, no quiero que se muera de asco en la estanteria.

Realmente, que es lo que enseña?

Un saludo.
gracias.

Título: Re: Como empiezo con C?
Publicado por: Mario en 06 de Abril de 2009, 01:33:16
Pues..........

tiene muchos ejemplos, muchísimos. Dichos ejemplos te los proporciona con el archivo de proteus listo para cargarlo.

Te enseña cómo programar en C y procura algunos aspectos básicos y avanzados (trae un ejemplo de PID con una termocopla, un capítulo de USB con simulación).

Considero que es una muy buena alternativa por costo-beneficio si no tienes el dinero para comprar el de BATES (y la placa entrenadora de Mecatrónica).  Este libro es mejor que el de BATES en el sentido que te proporciona muchos programas y te explica de manera sencilla qué realiza cada programa; BATES te proporciona una breve introducción al lenguaje C en CCS.


El libro contiene ejemplos para SPI, I²C, USB, ADC, PWM, TIMERS, interrupciones (muy bueno), teclados matriciales, control de motores, entre otros.

Te recomiendo que lo adquieras, ya que el costo-beneficio es muy alto, aunque ya tengas conocimiento de proteus, el tener ejemplos desarrollados en C y proteus es realmente valioso. Estamos hablando que son como 40-50 ejemplos, todos con su programa.

Una cosa mas:
utilizan el IDE de CCS, yo uso el MPLAB. Realmente no tienes problema con esto ya que el programa lo puedes simular tanto en MPLAB como en el IDE.


Espero te sirva la información.


Agregado:
Enlace de Marcombo, para el libro: http://www.marcombo.com/Descargas/9788426714954-COMPILADOR%20C%20CCS%20Y%20SIMULADOR%20PROTEUS%20PARA%20MICROCONTROLADORES%20PIC/descargar_primer_capitulo_libro_compiladorcccs_simulador_proteus.pdf

No te desanimes por la presentación, el libro es bueno en programación y simulación, solo que empieza en el capítulo 2.
Título: Re: Como empiezo con C?
Publicado por: pajaro en 06 de Abril de 2009, 17:48:00
hola Mario

Parece que es parecido al de ra-ma del 16F84A, le da un aire verdad?.
ya lo encargue en dos dias me lo mandan.

Un saludo.
Gracias.