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');
}
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');
}