Te has explicado a la perfección RedPic ya he modificado el programa tal y como me ahs dicho y tengo 0 erores y 0 warnings. Muchas gracias por la ayuda, he ido a Teoría y praxis de las com serie TTL : 3.- Comandos de un solo carácter
como me has dicho y he estado mirando, he querido probar el primer programilla super sencillo
///////////////////////////////////////////////////////////////////////////////////////////////////
#include <16f877.h>
///////////////////////////////////////////////////////////////////////////////////////////////////
// Fuses y ajuste de Clock
///////////////////////////////////////////////////////////////////////////////////////////////////
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT
#use delay(clock=20000000)
///////////////////////////////////////////////////////////////////////////////////////////////////
// Canal de Comunicación : usart
///////////////////////////////////////////////////////////////////////////////////////////////////
#define TTL_TX PIN_C6
#define TTL_RX PIN_C7
#use rs232(baud=9600, xmit=TTL_TX, rcv=TTL_RX)
void main() {
char rec;
printf("TyP_Serie_TTL\r\n"); // Al inicio escribe para ver que emite correctamente
do{ // Bucle ...
if(kbhit()){ // Si hay algo pendiente de recibir ....
rec=getc(); // recibe el caracter ...
putc(rec); // ... y lo escribes ...
} // ... después continúa ...
}while(TRUE); // ... hasta el infinito.
}
y me compila bien, pero sin embargo no imprime nada en el ordenador ni si quiera "TyP_Serie_TTL\r\n"
después cambié #use rs232(baud=9600, xmit=TTL_TX, rcv=TTL_RX) por
#use rs232(baud=9600,parity=N,bits=8,stop=1,xmit=PIN_C6,rcv=PIN_C7) sigue sin funcionar
y finalmente cambie esto por #use rs232(baud=9600,parity=N,bits=8,stop=1,xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C5)
y sigue sin funcionar. No me imprime nada en la pantaya, ¿quizás es porque uso el rs485?
Pero sin embargo cuando cargo un programa que envia datos si que los envia, no entiendo el motivo por el cual en el programa este tan sencillo no evnia ningún dato.
Creo que el hardware está correctamente conectado.
Gracias!!!
ACABO DE LEER LO DE HABILITAR MANUALMENTE EL PROGRAMA SIN EL ENABLE PIN, ES DECIR EL PIN 5 QUE TENGO VA DIRECTAMENTE AL MAX485 (PINES 2 Y 3 PUENTEADOS), ESTO CREAun conflicto entre el pic.
Ahora hablando de el programilla sencillo que he comentado anteriormente según lo entiendo me decis que lo mas correcto sea utilizar
///////////////////////////////////////////////////////////////////////////////////////////////////
#include <16f877.h>
///////////////////////////////////////////////////////////////////////////////////////////////////
// Fuses y ajuste de Clock
///////////////////////////////////////////////////////////////////////////////////////////////////
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT
#use delay(clock=20000000)
///////////////////////////////////////////////////////////////////////////////////////////////////
// Canal de Comunicación : usart
///////////////////////////////////////////////////////////////////////////////////////////////////
#use rs232(baud=9600,parity=N,bits=8,stop=1,xmit=PIN_C6,rcv=PIN_C7)
void main() {
char rec;
printf("TyP_Serie_TTL\r\n"); // Al inicio escribe para ver que emite correctamente
do{ // Bucle ...
if(kbhit()){ // Si hay algo pendiente de recibir ....
rec=getc(); // recibe el caracter ...
putc(rec); // ... y lo escribes ...
} // ... después continúa ...
}while(TRUE); // ... hasta el infinito.
}
Creo que tiene que haber algo más porque utilizando este codigo no funciona.
Puede ser que tenga que modificar algo mas al utilizar el protocolo rs485?
Muchisimas gracias amigos.. estoy aprendiendo muchisimo, siento causaros molestias.
Un saludo enorme!