Curso de programación en C para microcontroladores PIC

Nepper

Miembro algo reconocido
#21
Buenas! una pregunta... ¿la famila 18f, la que tiene USB, tambien es posible programarla en C o es más conveniente C++, y el assembler? no sabía donde preguntarlo, así que lo pregunté acá...

En realidad, quiero preguntar ¿El C me sirve para todos los PIC's? o sea, ¿lo único que tengo que encontrar es el compilador que lo traduzca a hex no?
 

Nepper

Miembro algo reconocido
#22
Buenas colegas!
La verdad es que no quería abrer este tema, pero ya estoy muy quemado, no se que más hacer para entender cómo programar en C..
Muchos dirán "Flaco, ¿usaste el buscador del foro?
yo les respondería: Si, fué lo primero que hice, y tras 5 horas de buscar información, de instalarme el MPLAB y descargarme 10 archivos CCSC que no se que c*** hace y nunca 2 paquetes son iguales, ya me pudrió... no cazo una con esto del MPLAB y el lenguaje C

Todos hablan felices de que es muy facil, inclinate por C, yo ya hise 5 programas, etc... pero nadie dice como m***a se instala!!!
Nunca en mi vida vi el MPLAB, tampoco se programar en C, pero no soy ignorante, sin duda nada me sirve...

La semana que viene me compro el 18f2550 para empezar a practicar, y quería tirarme ha acer 2+2 en C para ir viendo el tema, luego, quería ver como se programa para el PIC, entonces me descargué el MPLAB...
Todos los tutoriales son para ASM o, si bien son para C, ya les funciona todo, en cambio, mi CCS C me aparece con una crucesita roja...
Me descargué como 10 rar distintos de nombre CCS o CCSC, todos con contenidos distintos, algunos de 900kb y otros de 100MB...
Supongancé que le haya pegado a uno de esos archivos, el programa me acepta cualquier cosa para ponerle a la parte de compilador C.. o sea, le pongo un BMP que me tira que está todo OK :confused:

Alguien me puede explicar cómo se trabaja???
Lo que me imagino es que uno escribe el programa en C y despues se compila, pero ¿en que ventana tengo que escribir?

por acá hay mucha bronca...

en fin, noté que el compilador CCS hay que comprarlo, por eso pienso que me resulta dificl conseguirlo... entonces...
¿existe una forma de programar en C sin pasar por MPLAB o sin comprarlo?

Estube leyendo mucho, y necesito un compilador en C, pero no cualquier compilador C, si no uno que esté preparados para pics...
Pero por ahí cuentan que se pueden programar en C, C++, ASM, Assembler, VB, Delphi, Visual C, etc.. ¿todos usas un compilador especifico para PIC? no entiendo...

yo me acuerdo que en el colegio, agarrabamos un txt, el winPC y listo.. ¿por que acá tengo que hacer tanto quilombo?

¿Que necesito para programar por USB un pic 18F2550?

:cry:
 
#23
Basicamente para programar en cualquier lenguaje necesitas 2 cosas.... 1 editor y un compilador... en el caso del ensamblador es facil identificar cual es cual, el MPLAB incorpora ambos, el editor es el mismo MPLAB y el compilador es el MPASM

En el caso del C (o de cualquier otro lenguaje) es lo mismo, la mayoria de las veces bajas un compilador especifico para el microcontrolador que quieres ocupar y se instala bajo la mismo suite del fabricante (MPLAB en el caso de Microchip), y otras te instala su propia suite

Y para comenzar a programar es lo mismo, abres tu MPLAB, creas tu proyecto, tu archivo nuevo con extension .C y comienzas a escribir codigo en la ventana en blanco, despues compilas y simulas como normalmente haces....

En mi caso uso medios alternativos, me baje un programa llamado Programmers Notepad que te colorea el codigo y te permite instalar el compilador y compilarlo presionando una secuencia de botones, muchas veces trabajo con el programmers notepad y el AVR Studio abiertos(el equivalente del MPLAB pero en ATMEL), programo y compilo en uno y despues simulo el programa en el otro...
 
Última edición:

Nepper

Miembro algo reconocido
#24
Primero que todo
Gracias chico3001 por aclararme las idéas... será que llego a un punto que me satur y dejo de entender cualquier cosa XD

Segundo...
Nepper dijo:
Buenas colegas!
La verdad es que no quería abrer este tema, pero ya estoy muy quemado, no se que más hacer para entender cómo programar en C..
es muy extraño... yo había creado un post, le puse título y todo, arriba me decía "Nuevo tema" pero extrañamente mi mensaje se guardó aca...:confused:

pero bueno... gracias por los conceptos, ahora me voy a buscar un editor de C y aprender a usarlo tranquilo... el compilador lo buscaré luego... pienso que con el tiempo entenderé que es el MPLAB en su totalidad...
 
Última edición:
#25
es muy extraño... yo había creado un post, le puse título y todo, arriba me decía "Nuevo tema" pero extrañamente mi mensaje se guardó aca...:confused:
Creaste un nuevo tema... pero yo lo uni con este tema por que tienen mucho que ver... de echo deje una redireccion que me imagino que fue la que usaste sin darte cuenta para llegar a este tema... :LOL:
 

Nepper

Miembro algo reconocido
#26
Disculpenmé por molestarlo otra vez con mi persona, pero...
quiero el manual del PIC18F2550 :rolleyes:
Me agarró un atonjo de manual del pic... pero no quiero el PDF (ya empezamos con los caprichos) quiero el manual original de Microchip

Si, quiero esa biblia... me lo puse a leer en PDF y me encantó cómo está explicado, además que tiene todo... pero me molesta leer en pantalla... el problema es que me resulta muy dificil imprimirlo... y varias casas de imprentas no me lo hacen (que extraño :unsure:)
Estube viendo si lo podía encargar desde la página de Microchip, pero no encuentro lectura al respecto..

¿álguien sabe cómo conseguirlo?

Estaría muy agradecido si me dicen cómo conseguirlo nuevo 0Km
 
#27
Antiguamente Microchip si los tenia impresos y te los podia enviar gratis hasta tu casa o trabajo, pero me parece que ya tiene un tiempo que no lo hacen

La unica opcion que veo es pagar la impresion en un cafe internet y que te lo engargolen...
 
#28
Gracias por este magnífico manual. Soy profesor de programación con experiencia en C y ahora debo explicar a mis alumnos la programación de PIC´s. Conozco algo de ensamblador pero optaré por aprender en C y creo que este manual me será de mucha ayuda. GRACIAS
 
#29
ola como estan veo que les gusta programar en C y quisiera su opinion yo estoy realiando una tesis profesional y tengo algunos ejemplos sobre C y quisiera q alguine mas me diera su opinion de que tan buenos son los adjunto todos los codigos y simulaciones para el circuito armado espero sus comentarios y ademas en youtube pueden buscar videos de multiyack y ai estan ya fisicamente dejen comentarios para mejorarlos gracias mas adelante espero poder subir el manual de CCS que estoy armando coomo parte de lo mismo
 

Adjuntos

#31
Hola a todos
pues bien molestando otra vez por aqui

uso un PIC16F628A el cual programo con PIC C ya tengo varios programas hechos
y mas o menos le entiendo, ya que programo mucho C (aparte de otros lenguajes)

el problema que tengo ahorita es que necesito guardar un dato (un int) dentro del pic
para que cuando se apague y vuelva a encender se que este valor en memoria

digamos lo que tengo hasta ahorita es un programa inicia con un int valor =5

y mediante dos botones se le suma uno o se le resta uno, ahora lo que quiero es que

cuando haga este procedimiento de aumnetar o decrementar se salve en la memoria del PIC que isntruccion puedo utilizar, es que lo he buscado pero solo me sale para ensamblador y de eso no se nada

tambien aprovechando es que apenas estoy viendo como se llenan datos a un LCD y bueno hasta ahorita bien, salvo que cuando quiero que despligue un entero no hace nada
digamos:

si le pongo

Código:
lcd_putc('1');
si lo hace

pero si le pongo
Código:
lcd_putc(1);
no lo hace

mis preguntas son:
¿se puede convertir el tipo int a char?
y si es posible, ¿no consume muchos recursos del PIC? es que bueno, este es muy basico

de antemano muchas gracias
 
#32
Si se puede utilizando la libreria stdlib.c

algunas funciones existentes en esa libreria son como convertir de un numero a string, o viceversa...si deseas puedes bajar el manual de CCS.
Ahi viene todo referente a la libreriaque te menciono.
 
#33
Puedes usar la eeprom del pic para guardar y recuperar los datos.
PHP:
write_eeprom(direccion,valor);//guarda el dato valor int en la eeprom en la dirección dada
valor =read_eeprom(direccion);//recupera el dato
Un saludo.
 
#34
ola como estan mira bazookao para guardar datos es som lo menciona 1jabato1 es con esas instrucciones y si deseas cambiar estre valor int y valor char solo debes poner el nuemro o el dato entre comillas simples por ejemplo el '1' es el valor tipo char si deseas como tipo decimal seria 49 en hexadecimal seria 31 y asi con los demas

Referente a tu problema de la LCD es que la instruccion lcd_put(); se utiliza para imprimir valores de limpieza de LCD, tabulador y otras mas si deseas imprimir un mensaje en la LCD la libreria del CCS trae una instruccion que se llama printf(lcd_putc,"Mensaje"); pero el detalle es que solo sirve para LCD de 2*16

Y si lo que quieres es mandar a imprimir un valor entero este primero debe ser asigando a una variable por ejemplo:

Int valor=5;

printf(lcd_putc,"%d",valor); y con esto el valor de la variable sera impreso en la LCD.
 
#36
tengo unos problemas, yo programo en assembler con el mplab y un grabador basico serial pero me funciona bien con los pic 16fxx (84-628-870-877-873)
para programar en c que programas voy a necesitar y si tengo que cambiar el programador


alguien me puede dar los link de descarga de los programas porfavor
 
#38
hola roggers para comenzar a programar en c para microcontroladores uno de los mas utilizados es el PIC C Compiler de CCS y cuenta con gran cantidad de ejemplos en internet es muy fácil de utilizar e implementa muy bien el código pero también hay otros buenos compiladores como MikroC de microelectrónica el HI-TECH C. con muchas funciones y fáciles de aprender
saludos
 
#40
Hola molestando de nuevo por aqui lo que pasa es que tengo un codigo en C, ya funciona bien en el proteus y todo pero el problema es que tiene la siguiente forma
Código:
while(true)
{
instruccion
instruccion
instruccion
instruccion
instruccion
muestra LCD
Pausa para que se vea  el LCD
if(input(PIN_B4))
      Funcion();
}
entonces cuando lo simulo en el proteus si funciona bien, pero digamos que aveces no pasa nada cuando pulso un boton que esta conectabo (en este caso al Pin b4) como que tengo que atinarle para que se vaya a la subrutina

pensaba que me podria ayudar manejar interrupciones, por lo que he leido
seria mas o menos asi
cunado capture el pin b4 salte a una rutina de interrupcion, y ahi pongo el codigo que necesite

el problema es que no he comprendido muy bien lso ejemplos, en tema de Proyectos completos en C solo hay un ejemplo y pues no me queda muy claro, y un PDF que baje en este foro bien uno mas simple pero no me funciona

si me pudieran dar un ejemplo lo mas sencillo posible, se los agradeceria mucho

el pic en le que trabajo es el 18F4520

gracias de antemano