bueno mi duda es que no puedo recibir una cadena de caracteres desde el pic utilizando un programa en C#, cuando envio la cadena desde el terminal, el pic solo me reconoce 3 caracteres de esta,que posteriormente la guardo en al eeprom.
A continuacion les muestro lo que tengo realizado.
El Codigo en el PIC utilizando CCS
y aqui las 2 funciones en C# encargadas de transmitir de Visual studio 2010
mi intencion es poder guardar datos en las 256 pociciones de la eeprom utilizado el evento bntEnviar y no a traves de un evento keypress(de esta foma logro guardar todos los datos) .
de ante mano gracias.
A continuacion les muestro lo que tengo realizado.
El Codigo en el PIC utilizando CCS
Código:
#include "E:\Ejercicios ISIS\PIC\rs232\transmite.h"
int i;
#int_RDA
void RDA_isr(void)
{
char ch;
ch=getc();
putc(ch);
write_eeprom(i++,ch);
if(i>255) i=0;
}
void main()
{
i=0;
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
port_b_pullups(true);
set_tris_b(0x00);
set_tris_c(0x80);
output_b(0xFF);
delay_ms(2000);
output_b(0x00);
printf("Espera Cadena\n\r");
while(1){}
}
y aqui las 2 funciones en C# encargadas de transmitir de Visual studio 2010
Código:
private void sendChar(char c)
{
char[] data = new Char[1];
data[0] = c;
try
{
ps.Write(data, 0,1);
}
catch
{
MessageBox.Show("Error: sendByte - failed to send.\nIs the port open?");
}
}
private void bntEnviar_Click(object sender, EventArgs e)
{
String cadena = txtEnviar.Text;
sendChar(cadena[0]);
sendChar(cadena[1]);
sendChar(cadena[2]);
sendChar(cadena[3]);
sendChar(cadena[4]);
}
mi intencion es poder guardar datos en las 256 pociciones de la eeprom utilizado el evento bntEnviar y no a traves de un evento keypress(de esta foma logro guardar todos los datos) .
de ante mano gracias.