TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: elvysr44 en 22 de Diciembre de 2009, 18:25:24
-
saludos amigos.
Tengo pocas semanas estudiando los pic, he logrado realizar cietas aplicaciones en lenguaje C, actualmente intento enviar un Msj via puerto serial RS232 para leerlo en el hyperterminal, estoy probando con el codigo abajo mencionado y al compilar recibo este mensaje
Error [1098] ../../common/printf.c; 14. conflicting declarations for variable "_printf"
esto es utilizando MPLAP IDE7.10 con Hi-Tech V9.7 como compilador, para todo lo demas me ha funcionado pero en este falle, les agradezco toda ayuda que me puedan brindar.
elvysr44@hotmail.com
#include <pic.h>
#include <pic1687x.h>
#include <htc.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=2400, xmit=PIN_C6, rcv=PIN_C7, PARITY=N)
void main(void)
{
do
printf("prueba serial");
while(1);
}
-
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=2400, xmit=PIN_C6, rcv=PIN_C7, PARITY=N)
Estas definiciones no son del HiTech, si no del CCS. Puede ser ese tu problema.
-
Ok amigos, hace varios dias logre el objetivo que buscaba en funcion al rs 232 con el pic16f877, lo relice con las siguientes herramienta: PICC de CCS y simulé con isis de pruteus v7.x, todo salio calidad, ahora quiero hacer algo parecido pero con el pic16f84a pero al compilar el ccs me dice que no encuentra el archivo 16f84.h a pesar de que estoy seleccionando el pic desde el proyec wizard, lei que ese archivo se carga desde la instalacion del ccs y alli viene el problema yo tengo la version demo, donde consigo el archivo o la version full "GRATIS" tambien acepto otras ideas.
-
Hola elvysr44
Ok amigos, hace varios dias logre el objetivo que buscaba en funcion al rs 232 con el pic16f877, lo relice con las siguientes herramienta: PICC de CCS y simulé con isis de pruteus v7.x, todo salio calidad...
una pregunta: ¿que compilador usaste para compilar con el 16f877?
porque el hitech en su modo lite soporta el 16f84a
http://www.htsoft.com/products/compilers/piccpro-modes.php
-
Hola elvysr44
Ok amigos, hace varios dias logre el objetivo que buscaba en funcion al rs 232 con el pic16f877, lo relice con las siguientes herramienta: PICC de CCS y simulé con isis de pruteus v7.x, todo salio calidad...
una pregunta: ¿que compilador usaste para compilar con el 16f877?
porque el hitech en su modo lite soporta el 16f84a
http://www.htsoft.com/products/compilers/piccpro-modes.php
ok el hitech soporta el pic16f84a pero no la directrices #use y # rs232 que aparecen en el inicio de este mensaje, y con ellas manejar el 232 es bastante sencillo asi que cambie de compilador por el Picc de CCS.
-
En el 16F84 en la linea #use RS232 se debe agregar el parámetro force_sw ya que este dispositivo no tiene Hardware UART.
Saludos!
-
Ok, pero mi problema actual es que tengo el CCs version demo y a pesar que en el proyec wizhard seleccione el pic 16f84a al compilar se genera un mensaje de error diciendo que no se encontro el archivo pic16f84.h, mi pregunta es donde consigo esa libreria para adicionarcela a mi ccs o donde consigo la version full GRATIS ?
-
La librería es 16f84.h sin la palabra pic. Ya viene incluida en CCS completo. El demo de CCS no la trae.
http://ccsinfo.com/ccsfreedemo.php?navcode=/rhDemo
Ahí puedes adquirir la versión completa.
-
ok muchas gracis por todas sus colaboraciones y valiosos aporte, logre comunicar el pic 16f877 y el 16f84a en fisico " no simulado " con el hyper terminal de mi PC atraves del puerto rs 232, los resultados obtenidos superaron mis espectativas ahora tengo 02 nuevas metas que las describo a continuacion para que me densus sugerencias.
ok recibo datos via 232 de un equipo "A" , los acondiciono y los envio de regreso via 232 a un equipo "B" incluyendo el valor de la hora en la que recibi los datos , la hora es generada por una pequeña rutina que diseñe pero tiene un retardo de 5seg por cada 90min medidos en tiempo real , acontinuacion les dejo un segmento del codigo.
void crono(void){
delay_ms(1);
mm++;
if (mm>885){
seg++;
mm=0;
}
if (seg>59){
mn++;
seg=0;
}
if(mn>59)
{
hs++;
mn=0;}
if (hs>23){
hs=0;
mn=0;
seg=0;
mm=0;
}
if(hs>=13){
h24=(hs-12);
st="PM";}
else{
h24=hs;
if(hs==12)
st="PM";
else
st="AM";}
}
main(){
if(kbhit()){
gets(pin);///capturo el valor del rs232
cadena();///acondiciono lo recibido
printf("\r una linea de texto \r");
printf("\r%lu : %lu : %lu %s\r",h24,mn,seg,st);// imprime la hora calculada en crono
y la segunda es que quiero generar una rutina inteligente donde el puerto rs232 del pic se va auto configurar osea va a auto detectar la velocidad, paridad y largo de la palabra teniendo como referencia que debe encontrar un cr o cr/lf en la trama recibida en el 232 para conciderar valida la configuracion, ya que el proyecto actual lo tengo trabajando a (9600 8 n 1)
-
para el tiempo puedes utilizar la interrupcion del timer1 que te puede dar 1 segundo, es mas preciso y asi te ahorras ese eterno tiempo del delay de 1mS.
saludos
-
para el tiempo puedes utilizar la interrupcion del timer1 que te puede dar 1 segundo, es mas preciso y asi te ahorras ese eterno tiempo del delay de 1mS.
saludos
ok investigare un poco sobre la interrupcion mencionada, mucahs gracias por el aporte