Que debugger usas ??
Yo pondria la orden de encender y apagar un led despues del Kbhit() a ver si realmente pasa por ahi o no.
Si el debug que esperas es por serial, podrias tener mal algo del port serial.
Por otro lado prueba activar el bit rtr en el emisor (ultimo valor de la funcion Can_Put() cen 1), esto obligara a que el esclavo responda cuando recibe un mensaje.
Quedaria asi:
can_putd(0, &dato, 1, 1, 0, 1);
Ahora ya si que me acabo de liar del todo... Resulta que en modo debugger el pintf de "CCS EXAMPLE" me lo hace correctamente, pero si lo grabo y lo arranco sin conectar el ICD no me lo hace No se que puedo estar haciendo mal.
He puesto a 1 el bit RTR del emisor, pero sigue igual. Para probarlo tengo el printf de "Entro al kbhit()", pero nunca lo hace.
El debugger lo estoy haciendo desde el MPLAB con un ICD3.
Gracias por tu ayuda!
Una prueba mas (el que piense que todo sale de una primera vez, que no entre a este foro!!), intercambia ambas placas y sus programas, asi el que hoy recibe pasa a transmitir y viceversa.
A ver si hay algun problema de hardware...
[/quote]
Bueno, ya me deja grabar, tiene que ser alguna historia con el MPLAB... Te he hecho caso y he intercambiado ambas placas, además he puesto LEDs de TX y RX en los pines TXD y RXD de cada chip de can, el resultado es el siguiente:
Placa emisora: Envía un mensaje cada segundo. Cada vez que envía se encienden ambos leds, el de TXD y el de RXD, supongo que el de RXD se enciende porque recibe la confirmación por parte del otro chip, por poner RTR a 1, no?
Placa receptora: Se enciende el led de TXD cada vez que la otra placa envía un mensaje, no debería encenderse el de RXD??
Gracias de nuevo por tu paciencia y ayuda