Sábado 21 de Diciembre de 2024, 10:40
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Específica
»
Microcontroladores
»
Programación en C
(Moderador:
© Jonathan ©
) »
Programar En C...
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Programar En C... (Leído 4015 veces)
Huguen_aus_Tirol
Miembro MUY activo
Mensajes: 318
Programar En C...
«
en:
Jueves 10 de Marzo de 2005, 22:06 »
0
Hola! Nuevamente yo...
Bueno, quiero ponerme un poco a programar en C, pero hasta ahora siempre lo he hecho en asembler.
Hace un tiempo me baje el demo de Microchip, y escribí algo de código muy simple, que corrió en un 18F; pero al complicarlo un poco la cosa ya no funcionó
Se que hay varios compiladores dando vuelta, y ese es el problema: cuál de ellos conviene? Posiblemente el de Microchip sea el mejor, por lógica...
También veo que hay compiladores solo para los 16F; creo que conviene tener uno que soporte también los 18F.
Si alguién tiene algunos programitas de ejemplo, o sabe de algún link, o cualquier cosa, le estoy enormemente agradecido. En especial en lo que se refiere al manejo de los periféricos (AD, timers, etc...)
Bueno, desde ya las gracias a todos!
Tweet
© Jonathan ©
Moderador
Mensajes: 1671
Nacionalidad:
Re: Programar En C...
«
Respuesta #1 en:
Jueves 10 de Marzo de 2005, 22:28 »
0
Bueno, yo estoy en lo mismo, me parece mas simple y no seria malo saber por si acaso. En el FTP deje un manual que estoy leyendo en este momento.. todo lo que creas que sea util te invito a que lo coloques en el FTP, o dejes los links y yo me hago cargo. Gracias
Manual C para PIC
EINSTEC Tecnología
«La única fuente del conocimiento es la experiencia.»
«Lo importante es no dejar de hacerse preguntas.»
J1M
Miembro activo
Mensajes: 58
Re: Programar En C...
«
Respuesta #2 en:
Jueves 10 de Marzo de 2005, 23:53 »
0
Pues yo programo en CCS, no tendreis problemas en encontrar la version 3.221 (la ultima...y con pozima mágica de invulnerabilidad jejejej) claro q si lo vais a usar con fines comerciales, y en ningun caso educativos...en la página de ccs podeis adquirirlo
El C18 de Microchip tb es muy potente, por experiencia (de una año hacia aká), encontrareis mas ejemplos, y librerias ya creadas para el CCS
Salu2!
..]Hobby[/color]
PIC
]
Si puede pensarse, puede hacerse...
Huguen_aus_Tirol
Miembro MUY activo
Mensajes: 318
Re: Programar En C...
«
Respuesta #3 en:
Viernes 11 de Marzo de 2005, 22:12 »
0
Hola! Navegando por la red encontré lo siguiente:
http://www.picant.com/c2c/c.html
Pude bajar un compilador C de esta dirección, que se integra al MPLAB y soporta los 16F y los 18F. Lo acabo de instalar sin problemas; pero ahora estoy sin saber para donde ir
.
Tengo abierto el manual que bajé del ftp de solo código, y está interesante... pero sigo ahí.
Quiero empezar a probar con el 16F873, ya que me es más familiar que el 18F452.
Bueno, espero que el link sea útil; y si alguien tiene algún ejemplito como para empezar, será bienvenido!
Saludos!
Huguen_aus_Tirol
Miembro MUY activo
Mensajes: 318
Re: Programar En C...
«
Respuesta #4 en:
Sábado 12 de Marzo de 2005, 19:47 »
0
Hola! Estuve practicando con el compilador C que bajé, y despacito está yendo
Viendo que nadie tiene ejemplos, aqui les dejo algo tonto que conseguí hacer, y funciona!
Es un pequeño programita para escribir en un CD4094; la cuestión es que con la poca información que tengo (el manual que dejó Jonathan, que está muy útil, y el help del compilador) pude hacer esto. Me llevó algo de tiempo, pero estoy aprendiendo... Bueno, espero que le sea útil a quien se esté inciando.
Ah, el programa lo cargo en un 16F873.
Saludos y gracias por la ayuda!
/* PROGRAMA DE PRUEBA
Hugo Erhard
12.03.2005
*/
#include <system.h>
#pragma DATA 0x2007, 0x3D31;
char zaehler94;
/*
Rutina para escritura de un byte en un CD4094
RA1 -> strobe
RA2 -> datos
RA3 -> clock
*/
void schreib_4094( char date )
{
char i;
i = 0;
while( i < 8 ) //son 8 bits a escribir
{
if ( date & 0x01 ) //es el bit0 = 1?
set_bit( porta, 2 ); //si, saco un 1
else
clear_bit( porta, 2 ); //no, saco un 0
set_bit( porta, 3 ); //clockeo
clear_bit( porta, 3 );
date = date >> 1; //y preparo para sacar proximo bit
i += 1; //incremento contador de bits a sacar
}
set_bit( porta, 1 ); //doy pulso de strobe para confirmar
clear_bit( porta, 1 );
}
void main()
{
trisa = 00000001b;
trisb = 00000000b;
trisc = 01011001b;
zaehler94 = 0; //inicio contador en 0
while(1)
{
set_bit( porta,4 ); //apago led
delay_s( 1 ); //espero 1 segundo
clear_bit( porta,4 ); //enciendo led
delay_s( 1 ); //espero 1 segundo
schreib_4094( zaehler94 ); //escribo el 4094
zaehler94 += 1; //incremento valor a escribir en el 4094
}
}</li>
Huguen_aus_Tirol
Miembro MUY activo
Mensajes: 318
Re: Programar En C...
«
Respuesta #5 en:
Miércoles 16 de Marzo de 2005, 07:02 »
0
Hola a todos!
Para mover un poquito el tema, les propongo algo!
Es sobre el código que publiqué en el mensaje anterior. Lo compilé y cargué en el micro, y funcionó de maravilla. Y después ya no funcionó más...
El listado ya lo tienen, es corto y simple... Ahora les detallo del hard: es una pequeña placa experimental con 16F873; en RA0 tengo una entrada analógica, RA1 a RA3 son salidas y controlan un CD4094; en RA4 tengo un LED. El resto del hard no viene al caso ahora.
Sobre el caso en particular: tenía primero cargado un programa, totalmente distinto a este, que procesa la entrada analógica de RA0; sobre este código cargué este otro escrito en C y funcionó de maravilla
Después desconecté la alimentación de la placa, cuando la vuelvo a alimentar, sorpresa!: no funcionó más
. La alimentación llega desde el mismo grabador, es decir que grabador y micro están siempre alimentados.
Bien! Que pasó? Dónde está el problema?
Yo encontré la causa, y ahora sí funciona "siempre"...
Al que le interese, le invito a ver el problema y dar alguna respuesta. Cualquier consulta, todos los días entro al foro, asi que solo dejenla aquí. La invitación va para los que recién empiezan (como es mi caso) y también para los que tienen más experiencia en C.
Ah, para que nadie me diga "tramposo"
, Jonathan ya tiene la respuesta.
Demos un plazo de unos días, digamos hasta el domingo, para ver como se soluciona esto!
Bueno, saludos a todos, y están invitados a "romperse el mate"
(en realidad no es nada complicado)
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Específica
»
Microcontroladores
»
Programación en C
(Moderador:
© Jonathan ©
) »
Programar En C...