fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Empezar desde 0 en ...
 
Avisos
Vaciar todo

Empezar desde 0 en C, ejemplos de programación

22 Respuestas
7 Usuarios
0 Reactions
108.3 K Visitas
rashii
Respuestas: 530
Topic starter
(@rashii)
Ardero
Registrado: hace 19 años

Hola, este post lo creamos para ayudar a todos aquellos que empiezan desde cero y se quieren adentrar en este mundo de la robótica programando en C.
¿Porque C?
Hay muchos lenguajes, pero en mi opinión C es uno de los mas extendidos, que más gente conoce y bastante fácil de manejar una vez que te haces con él.

INDICE
Espero que poco a poco vayamos ampliando esta lista con los ejemplos que colgemos entre todos, ya que yo me considero novato y no os voy a poder ayudar mucho, de momento cuelgo el primer ejemplo básico que comentamos:

1-Hacer parpadear un led - Página 1
2-Encender y apagar un led con un interruptor - Pagina 2

Teoría de C
Para el que no sepa nada de C, os podeis mirar estos dos temas iniciales de teoría, en la que se describen de manera esquemática el manejo de C para los ejemplos básicos con los que empezaremos (entradas/salidas):

Fundamentos de Programación de C
Puertos de Entrada y Salida

Ambos ejemplos están sacados de la web de "El Rebujito", y su pass es "micro" . Si colgais algún tutorial/manual/codigo poned por favor la procedencia por respeto a sus autores.
Herramientas electrónicas
Las herramientas que desde mi punto de vista os aconsejo son:
-Programador-> Os podeis hacer con cualquier programador para pics, aunque uno de los más usados por la gente es el TE-20 bastante conocido.
-Proto board o placa de pruebas-> Placa fundamental para todos los ejemplos que vamos a hacer, en ella se pueden insertar componentes tantas veces como se quieran. Si quieres dejarlos fijos, también puedes adquirir una "placa de topos" en la que son muy fáciles de soldar los componentes
-Multimetro (opcional pero muy recomendable)-> Aunque no es obligatorio, para comprobar conexiones, intensidades...os aconsejo tener a mano un multímetro
Microprocesador
Entre todos hemos decidido que el microprocesador será el PIC 16F876 (o 16F876A), ya que es uno que ofrece bastante potencia para ejemplos futuros. Podeis ver su hoja de carácterísticas que os aconsejo que la tengais a mano en esta direccion:

Hola de características del PIC 16F876A
Software
-Uno de los compiladores más usados en C es el CCS por lo que podeis usar ese compilador si quereís, aunque es de pago. Os podeis bajar una versión demo en esta dirección:
http://www.ccsinfo.com/content.php?page=compdemo " onclick="window.open(this.href);return false;
-Para simular y crear los circuitos, una de las herramientas más usadas y no muy complicadas es el programa Proteus. También os podeis bajar una versión demo en su web:
http://www.labcenter.co.uk/index_uk.htm " onclick="window.open(this.href);return false;
-Para integrar el compilador al simulador, y hacer las simulaciones en el foro de todopic pusieron dos manuales:
Integrar CSS en Proteus
Simular CCS en Proteus
De manuales, tradujeron al español el de CCS, sus autores: Andrés Canovas y Victor Dorado, lo podeis descargar de aquí:
Manual en Español de CCS
Descarga/subida de archivos
Como con internet explorer a algunos os van mal los archivos (si cumpliera los estandares el explorador como mozilla..ejem) podeis subir los archivos a esta dirección en formato comprimido:
http://www.webdearde.com/upload/ " onclick="window.open(this.href);return false;
y el link donde se ubicará el archivo será:
http://www.webdearde.com/upload/foro/ " onclick="window.open(this.href);return false;
Modificación 28/3/09 (jariza): hace tiempo que se dejó de usar este sistema de upload.

Creo que no me olvido de nada, a continuación colgaré los ejemplos, os animo a todos a colgar vuestros ejemplos y a plantear todas las dudas que tengais, para que entre todos vayamos subiendo el nivel. Un saludo.

Responder
21 respuestas
gizer20
Respuestas: 1570
(@gizer20)
Noble Member
Registrado: hace 19 años

una pregunta puede no tenga relacion pero komo no se si son codigos fuente o ke os la hago sino la cambio( estoy leyendome los manuales no penseis ke me e olvidado del post)

LA pregunta es : mrsuite1_0-beta-source.tgz este archivo ke e pusto antes kon ke programa lo tengo ke abrir es un simulador de robots modulares pero no se ke tipo de archivo es?

Otra pregunta si un archivo .hex se kiere descompilar kon el CCs se podra aunque el archivo desde donde se kompilo originalmente se asm?

Responder
Nocturno
Respuestas: 36
(@nocturno)
Eminent Member
Registrado: hace 18 años

La extensión TGZ es un fichero comprimido de Unix / Linux y puedes abrirlo con Winzip o Winrar sin problemas.

Te recomiendo metas en favoritos la web http://filext.com donde puedes consultar el significado de cualquier extensión que exista.

No puedes descompilar un HEX hacia C, lo máximo es descompilarlo hacia ASM para lo que existen aplicaciones específicas.

Responder
qkiyo
Respuestas: 106
(@qkiyo)
Estimable Member
Registrado: hace 18 años

Ola a todos. Ants de nada gracias por ste post que me esta sirviendo de gran ayuda, ya k e empezado con los PIC y me sta costando cogerlo. Tngo algunas preguntillas..:
- ¿xk configurais los puertos como salidas o entradas?¿no se configuran al principio?
- en los 1ºos ejemplos que poneis, desde el "#define..." hasta el "void main void" (incluido), lo pone el compilador solo..¿no? (por la configuración que acemos al principio),
- y otra pregunta, el bucle infinito k aceis, ¿es correcto acerlo con:?

for (;;)
{

}

No se xk,me da error al compilar,a no ser k lo meta dentro del "void main..". Alguien me puede decir de algun set de instrucciones, estoy echo un liooOo 🙁 . Muxas gracias y salu2 a tdos!!

Responder
gonzao
Respuestas: 218
(@gonzao)
Estimable Member
Registrado: hace 19 años

Hola:

Los puertos son de entrada/salida (E/S), es decir, la información puede entrar al microcontrolador o salir del mismo. En cada instante, un puerto o pin de un puerto es sólo una cosa, entrada o salida. Si quieres leer un dato del exterior hay que configurarlo como entrada y si quieres sacar información al exterior debemos configurarlo como salida.
Si unos pines siempre van a ser de salida en todo el programa y otros siempre serán entradas, pues se pone al principio y listo. En caso de que un puerto se use como entrada y salida en el mismo programa habrá que estar configurándolo "en directo", vamos, según se va ejecutando el programa. Para ello al principio de este hilo se explicaba cómo hacerlo.

En cuanto a lo del bucle infinito es que tiene que estar dentro de la función main. "Todas las instrucciones van dentro de funciones."

Un saludo
gONzAO

Responder
qkiyo
Respuestas: 106
(@qkiyo)
Estimable Member
Registrado: hace 18 años

Buenas!

Buscando algo de ayuda, he vuelto a dar con este hilo, k veo k esta un pokillo abandonado..la verdad esk vendría muy bien k siguieramos poniendo ejemplos y explikaciones para la gente k no tiene apenas experiencia.

Bueno, llevo cosa de mes y medio usando CCS, y me doy cuenta k es un compilador de lo más práctico e intuitivo. Empecé de 0 prácticamente, y ahora estoy ya con la programación de un robot.
Recomiendo a aquel k empiece, k haga lo k kain589 recomendó en otro tema (k derivó en este), que se propongan retos muy simples, como el de encender y apagar un led, basándose en ejemplos ya hechos, y posteriormente modificándolos al gusto o necesidades de cada uno.
Así es como me he ido apañando y da resultados 😉 .

Aprovecho para comentar una duda (y perdonad si no fuera indicado hacerla por aki). Necesito controlar la velocidad de dos motores mediante PWM (Pulse With Modulation) por programación. He mirado por internet muchos ejemplos, pero la mayoría están en ensamblador,y apenas me entero.
El propio CCS trae un ejemplo, pero tmpk termino de coger la "mecánica" de la programación. Se en k consiste lo k debo hacer, pero no se como hacerlo. Os agradecería si alguien me pudiera mostrar un ejemplo explikado, o algo para poder continuar, xk la verdad esk me es muy necesario...

Muchas gracias a todos y SaLu2!!

PD: Contínuad con este tema!!, kreo k podría ser muy útil para principiantes 😀

Responder
Página 4 / 5
Compartir: