Que tal bit pic. soy nuevo por aqui y quiero ver si puedo obtener un poco de ayuda
Lo que pasa es que estoy haciendo una proyecto con microcontroladores en la que tengo que abrir, leer y enviar los datos (ficheros .txt) que estan guardados en una memoria SD. Ya puedo abrir y leer los datos que estan dentro de ella. Mi problema radica en la transferencia y la recepción de archivos via rs232 ya que no tengo idea de como mandar tales o por lo menos en el copilador que uso (CCS compiler) no he hallado algun ejemplo similar. La idea es que un pic este como maestro (el cual tiene la sd card) el cual enviara los archivos de la tarjeta y otro como esclavo el cual recibira los archivos y los almecenara y enviara a la pc.
Lo que llevo de codigo es lo siguiente:
#include "18F452.h" //Libreria del PIC a utilizar
#fuses H4,NOWDT,NOPROTECT,NOWRT,NOWRTD,NOLVP,BORV27,PUT,STVREN,NODEBUG,NOWRTB //Configuraciones de salida Generales
#use DELAY(CLOCK = 20MHZ,RESTART_WDT) //Configuración del Oscilador
#use RS232(BAUD=57600, PARITY=N, XMIT=PIN_C6, RCV=PIN_C7,/*ERRORS*/) //Configuración de RS232, para la transmisión serie
/*----------------------------------------------------------------------------*/
/* Cabecera para memoria SD */
#include "HDD Driver.c"
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* Principal */
/*----------------------------------------------------------------------------*/
void main()
{
int error,error0;/*r1,i,j,error1*/
int16 rec_no;
int16 rec_size;/*index,int32 offset;*/
char fname[32],buff0[MMC_BUFF_SIZE+1],buff1[MMC_BUFF_SIZE+1];/*char c;*/
/*----------------------------------------------------------------------------*/
/* Configuracion de Puertos */
/*--------------------------------------------------------------------------- */
set_tris_c(0b10010011); //c7=rx I, c6=tx O, c5= SDO O,c4= SDI
output_high(_CS);
printf("\r\n**** Leyendo SD/MMC FAT16 **** ");
printf("\r\n");
Delay_ms(500);
printf("\rAbriendo archivo(s)....");
printf("\r\n");
Delay_ms(500);
/*----------------------------------------------------------------------------*/
/* Protocolo para lectura de memoria (SPI) */
/*----------------------------------------------------------------------------*/
SETUP_SPI(SPI_MASTER|SPI_SS_DISABLED|SPI_H_TO_L|SPI_CLK_DIV_16|SPI_XMIT_L_TO_H);
buff0[MMC_BUFF_SIZE] = 0;
buff1[MMC_BUFF_SIZE] = 0;
rec_no = 0;
/*----------------------------------------------------------------------------*/
/* Inicializacion de la tarjeta */
/*----------------------------------------------------------------------------*/
error = init_MMC(10);
if (error > 0)
{
goto mmc_exit;
}
printf("\n\rMMC Inicializada \n\r");
rec_size = MMC_BUFF_SIZE;
strcpy(fname,"lectura1.txt");
rec_size = MMC_BUFF_SIZE;
error0 = open_file(0,fname,rec_size);
if (error0 > 0) {
printf("\n\rArchivo(s) Abiertos : 0 Error Fallido = %U\n\r",error);
goto mmc_exit;
}
else printf("\n\rArchivo Abierto %s with rec size %lu \n\r\r",fname,rec_size);
do
{
error0 = file_read(0,buff0);
if (error0 > 0 && error0 < 255 )
{
printf("\n\rArchivo(s) Leído(s) = 0 Error Fallido = %U\n\r",error0);
break;
}
printf("%s",buff0);
rec_no++;
}
while (error0 == 0);
mmc_exit:
printf("\r\n\rdone winhex adj= %lu \n\r",winhex_adj);
while(true);
}
Algun ejemplo de transferencia de archivos, articulo o lo que sea, para ccs sera bien recibido
Gracias
mi correo es jpalomino@alerta.com.mx ó jorgeluis.gutierrezpalomino@gmail.com