Comunicar pic18f4550 por rs232

es que el buffer del RS232 es de 1 byte y sus bits paro y stop
mientras que el del USB son 64 bytes bueno quitandole el primer byte para hacer cositas

no entendi eso de las frecuencias
nunca he usado el USB en CCS en C18 nadamas y puedo decir que los delay le dan en la torre al codigo en USB

asi que no los uso pues la LCD y el CPU trabajan a una velocidad independiente al puerto USB un delay en el CPU puede truncar la sincronia ,CCS no se como lo soluciono

en USB si puedes hacer esto:

unsigned char buffer[64];

y hacer esto:

buffer[1]=algo;
buffer[2]=algo;
buffer[3]=algo;
buffer[4]=algo;
buffer[5]=algo;

y enviar todo eso de una vez pues tienes 64 bytes para enviar de un golpe en cambio RS232 lo debes enviar de 1 en 1

digamos que tengo esto
buffer[1]=algo;
buffer[2]=algo;
buffer[3]=algo;
buffer[4]=algo;

tengo 2 formas de enviarlo con un putc dentro de un for hasta acabar con todo mi buffer digamos 4 bytes enviamos 4 veces

o enviarlos como cadena de caracteres aunque no contenga caracteres enviamos lo que hay asi:

printf("%s"buffer);
siendo que nosotros llenamos previamente los buffer con valores numericos el printf se encarga de enviarlos todos hasta llegar a null
 
que bien me diste una muy buena solucion, con el ciclo for. yo pensaba que al igual que en usb, podria enviar con rs232. pero este ultimo esta muy limitado. pero en fin hay muchos caminos diferentes para enfrentar esas limitacions. muchas gracias y a seguir aprendiendo. saludos
 
es que no pienses que es limitado es alrevez es mas rapido que en modo HID
el problema es que nosotros no lo vemos como un protocolo lo vemos como algo obsoleto

bueno el RS232 es bueno a diferencia del USB se necesita un driver para CDC y en modo HID o mass storage device no se necesita un driver pero la complejidad es mayor, en CCS desconosco como esta construida la capa del USB a ojo de buen cubero se parece a la capa 9 del USB pero no se como le hiso CCS para poder meter cuanto Delay es necesario.

como decia el for te enviara los datos pero digamos que es un
unsigned char *cadena;

donde meteremos cuantos datos sin signo son posibles a la cadena ¿hasta cuando enviaremos los datos?

seria asi:


while(cadena!=NULL)
{
putc(cadena);
i++;
}


o con un for tambien ó mas facil

printf("%s",cadena);

asi enviamos de un tajo toda la cadena
el chiste es tener nociones de programacion antes de culpar a quien te da la mano o culpar al protocolo.

ejemplo:

un coche choco con otro coche ¿cual fue el problema el coche?
solucion
el problema esta entre el asiento y el volante
 
hola,
Antes que nada quiero agradecer a Trilo-Byte que me soluciono un problema sin él saberlo, me paso lo mismo que a darianpc. Esto me pasa por ser principiante y no estudiar bien el significado de los FUSES en cada PIC.

Bueno, ahora la consulta.
Quiero recibir datos con el pic18f4550 por rs232 y almacenarlos en un buffer para así poder utilizarlos a mi manera, sean números o letras.
Quisiera saber si alguien me podría dar una mano con esto.

Desde ya muchas gracias.
Saludos.
 
D@rkbytes, muchas gracias por interesarte en mi problema. Te cuento ya logre hacerlo, pese a que todavia estoy puliendo el programa.
La idea mia es, que al recibir informacion por serial al pic, el pic lo almacene en una variable para luego poder leerla y compararla con otra informacion, por ejemplo recibo una palabra y la comparo con otra palabra guardada en una variable diferente. Buscando informacion, y estudiando un poquito lo logre hacer, ya que soy principiante en esto. Nuevamente te agradesco por ayudar y ya caere con alguna otra pregunta jeje. Saludos!
 
Atrás
Arriba