Llevo unos dias sin escribir pero sigo con el tema y, por fin, parece que he tenido algun avance.
Os lo cuento lo mas breve posible:
Para empezar he dejado temporalmente de lado el PIC16F1947 y he empezado a investigar con el PIC16F877A, que le conozco mucho mas.
Al principio me salia la msima cadenas de mensajes que antes

:
"Indirection address [0xFFFF] for INDF register is outside of writable memory..."
Solucion: declarar una rutina de interrucpion, aunque no la utilize, algo asi
void interrupt isr (void)
{
if(PIR1bits.SSPIF == 1)
{
PIR1bits.SSPIF = 0;
}
else
{
}
}
Al poner esto desaparecion los errores. El codigo no podia regresar de un retfie y por eso salian esos errores??
Despues de esto y cambiando la libreria y el main aqui y alla (muy largo para explicarlo, luego os cuelgo el codigo) el codigo iniciaba e iba hasta la condicion de start pero luego nada mas
![redhot :5]](http://www.todopic.com.ar/foros/Smileys/default/redhot.gif)
.
Solucion: poner retardos entre las operaciones de start_bit, send_data.... entre cada una sin falta un retraso.
Y el codigo empezo a funcionar, eso si, en proteus. En circuito real lo probare la semana que viene o la siguiente, depende del trabajo...pero tiene buena pinta
Todavia no se si funciona en realidad y si lo hace me queda hacerlo funcionar en el 16F1947, es decir, todavia me queda camino pero por lo menos, despues de semanas de estudio, he empezado a ver el final del tunel.
Si avanzo mas os mantendre informados.
Gracias a todos por vuestra ayuda.
main.c(1.95 kB - descargado 190 veces)