Como enviar datos de un Pic 16F876 a una Pc ....

Hola
Estoy atascado con algo que no consigo sacar, espero puedan ayudarme, lo que quiero hacer es enviar los datos que el Pic guarda dentro de su eeprom hasta un programa desarrollado en Visual Basic, estoy usando la instrucción putc, la uso justo debajo de las lineas que reciben los datos desde el puerto serie del ordenador cuando se dispara la interrupción por recepción. Mi programa de recepción de datos en Visual Basic muestra únicamente una Messagebox que dice "Enviar Datos", pero no envia ningun dato desde el Pic para el caso solo envio la "H". Muchas gracias..


#int_rda // Serial input interrupt
void serial_isr(void)
{
byte dummy;
if (rcif==1){ // ¿ Interrupción por recepción ?

bandera_interrupcion = 1; // salvamos para utilizarlo en la sección PC_SI_NO y si no existió interrupción, permanecerá en cero..

rcif=0; // Sí, reponer flag.

parametros[elemento]= getc();
if(ferr) // if we have a framing error clear it by reading rcreg
dummy = rcreg; // this is just a variable dummy used to clear the rcreg after a read


if(oerr) // if we have a overrun error clear it by reseting the cren flag
{ cren = 0; cren =1;}

elemento++;


if(elemento==7){ // para limitar a 7 los caracteres de llegada, el 8vo ya no le cogería: funciona perfectamente

finrecepcion=1;

disable_interrupts(int_RDA); // deshabilitamos interrupción de la UART.. ....
disable_interrupts(GLOBAL); // deshabilitamos interrupciones globales.

}

} // fin del if del rcif

putc('\n');
puts("H");
delay_ms(1000);
putc('\n');
}
 
Hola como estas, podes bajar de www.niplesoft.net una demo del niple, esta demo tiene un programa de interfaz de comunicacion rs232, para enviar y recibir datos. Talvez te sirva esa utilidad es fasil de configurar, y de ahi deducir si el problema esta en el micro o en la programacon de VB. consejo, fijate el tema de velocidad de envio y recepcion de datos. puede que ahi este tu problema.
en el codigo lamentablemente no te puedo ayudar.
saludos.
 
Hola, que tal si pruebas lo siguiente, hace un while de la siguiente forma:

while(getc()!='H')
{......Aqui no hace nada.....}

Si recibio la 'H' coloque los valores de la EEprom en una variables que antes has definido y depues utilizas PRINTF y lo mandas como un string al PC.

Espero que te sea de utilidad.

SUERTE Y EXITOS
 
Atrás
Arriba