TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: arquito en 06 de Junio de 2007, 17:21:37

Título: Dudas varias con porgramar un PIC
Publicado por: arquito en 06 de Junio de 2007, 17:21:37
Hola a todos;

     Resulta que tengo hecho un programilla en C con CCS, para el PIC16F819; me compila todo OK, y mi duda es de donde saco el codigo ASM que le metere al programador para programar el susodicho PIC; ¿es el codigo que me sale dandole a la pestañita VIEW-->C/ASM LIST? por que me he quedado un poco frio al ver que lo que me sale ahi son cerca de 750 lineas de codigo, y no se si sera suficiente la memoria del PIC para meterle todo eso; al compilar me sale que ROM=23% y RAM=5%, supongo que eso quiere decir que si, pero me quedaria mas tranquilo si alguno de vosotros me lo dice.
     La otra dudilla que tengo, ya mas de programacion, es la siguiente: mi programa, lo que se supone que hace, es que cuando le llega un dato al PIC, en funcion de su valor(pueden ser 4 valores distintos), saca por un LCD una frase; lo que no se, es si la rutina LCD_INIT, debo ponerla cada vez que vaya escribir, o si valdria simplemente con ponerla al principio del programa, y luego cuando vaya a escribir en el LCD poner el printf(lcd_putc," TEXTO " )  de turno cada vez....
espero que me podais responder y resolverme estas dudas que tengo.... Mil gracias y un saludo a todos¡¡¡¡
Título: Re: Dudas varias con porgramar un PIC
Publicado por: maunix en 06 de Junio de 2007, 17:30:02
Un compilador o ensamblador al finalizar el proceso de linkeado debiera generarte un archivo .HEX

Es éste el archivo que debes usar con tu programador para quemar el pic.

Saludos
Título: Re: Dudas varias con porgramar un PIC
Publicado por: micro_cadaver en 06 de Junio de 2007, 18:11:26
preguntastes 2 cosas, ahi van las respuestas:

Citar
Resulta que tengo hecho un programilla en C con CCS, para el PIC16F819; me compila todo OK, y mi duda es de donde saco el codigo ASM que le metere al programador para programar el susodicho PIC; ¿es el codigo que me sale dandole a la pestañita VIEW-->C/ASM LIST? por que me he quedado un poco frio al ver que lo que me sale ahi son cerca de 750 lineas de codigo, y no se si sera suficiente la memoria del PIC para meterle todo eso; al compilar me sale que ROM=23% y RAM=5%, supongo que eso quiere decir que si, pero me quedaria mas tranquilo si alguno de vosotros me lo dice.

bueno, como te dijo maunix, el archivo que entra en el pic es el *.hex y cuando uses tu programador tienes que jalar el archivo de tu proyecto con la extension *.hex, y lo de las 750 lineas, si ves el datasheet del 16f819 vas a encontrarte que tiene 2K de memopria de programa, osea 2048 lineas, tu tienes 750,... no se si corresponda con el 23% porque ROM es la memoria de programa donde escribes tu codigo y RAM la memoria de datos donde estan alojados tus registros.

Citar
La otra dudilla que tengo, ya mas de programacion, es la siguiente: mi programa, lo que se supone que hace, es que cuando le llega un dato al PIC, en funcion de su valor(pueden ser 4 valores distintos), saca por un LCD una frase; lo que no se, es si la rutina LCD_INIT, debo ponerla cada vez que vaya escribir, o si valdria simplemente con ponerla al principio del programa, y luego cuando vaya a escribir en el LCD poner el printf(lcd_putc," TEXTO " )  de turno cada vez....
la rutina de inicializaxion del LCD se hace una sola vez, luego solo escribes datos y mandas comandos.
Título: Re: Dudas varias con porgramar un PIC
Publicado por: arquito en 06 de Junio de 2007, 18:17:43
Muchas gracias maunix y micro_cadaver por vuestras respuestas... me lo habeis dejado bien clarito, asi da gusto¡¡¡jeje... por cierto micro_cadaver, en lo referente a la segunda pregunta entonces, esto seria correcto???(pongo la parte que me interesa que veas):

Código: [Seleccionar]
lcd_init();         //inicializa lcd

while(valor<0X55);    // Dato digital menor que q 1.66V(01010101 segun el conversor)

{
   
   delay_ms(2);      //retardo para apreciarse todos los caracteres
   printf(lcd_putc," Vacio " ) ; //muestra por pantalla el mensaje

}

while((valor>0X55)&(valor<0X56)); // Dato digital mayor que q 1.66V(01010101 segun el conversor) y menor que 1.7V(01010111)

{
    delay_ms(2);      //retardo para apreciarse todos los caracteres
   printf(lcd_putc," Quedan "
"0.1 Litros" ) ; //muestra por pantalla el mensaje
}

MIl gracias¡¡¡ de verdad.
Título: Re: Dudas varias con porgramar un PIC
Publicado por: micro_cadaver en 06 de Junio de 2007, 18:21:13
sipitos  :-)
Título: Re: Dudas varias con porgramar un PIC
Publicado por: arquito en 06 de Junio de 2007, 18:26:20
jejeje , gracias micro_cadaver... un abrazo¡¡¡¡  :o
Título: Re: Dudas varias con porgramar un PIC
Publicado por: micro_cadaver en 06 de Junio de 2007, 18:32:57
jajaja okas, aunque ni te me peges porque toy con el estomago flojo  :8}, aca en peru le dicen a esa enfermedad : se te rompio el caño, estas con la wacha floja...etc
Título: Re: Dudas varias con porgramar un PIC
Publicado por: PalitroqueZ en 06 de Junio de 2007, 18:35:27
jajaja okas, aunque ni te me peges porque toy con el estomago flojo  :8}, aca en peru le dicen a esa enfermedad : se te rompio el caño, estas con la wacha floja...etc


offtopic:

por acá decimos "andar con el barro flojo"  :D :D :D