Autor Tema: Fat16 de CCS 4.049  (Leído 5475 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado uppicc

  • PIC10
  • *
  • Mensajes: 26
Fat16 de CCS 4.049
« en: 27 de Septiembre de 2007, 12:33:47 »
Hola a Tod@s

Alguien a probado el driver que trae con exito, a mi funciona algunas veces si otras no escribe ò lee en la tarjeta otra duda es que parece que no es conpatible con windows ya que no muestra nada.

Por ultimo conoceis alguna libreria Fat16 que funcione correctamente que no sea de pago


Un Saludo

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Fat16 de CCS 4.049
« Respuesta #1 en: 27 de Septiembre de 2007, 19:04:25 »
mira aquí hay otro forero (slalen) que está tratando de hacer lo mismo que tu.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Slalen

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1079
    • Página web personal de Guillermo Herrero González
Re: Fat16 de CCS 4.049
« Respuesta #2 en: 28 de Septiembre de 2007, 07:55:59 »
Andamos todos igual!!!!!

Por lo menos, a ti te funciona de vez en cuando. A mi, ni me inicia la MMC

Suerte!!!

Desconectado El_Guitre

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1046
Re: Fat16 de CCS 4.049
« Respuesta #3 en: 29 de Septiembre de 2007, 03:21:16 »
Yo he usado con mi proyecto la librería que trae MicroC y me funciona muy bien, es bastante sencilla y la verdad me funciono. No tengo experiencia positiva con la de CCS.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Fat16 de CCS 4.049
« Respuesta #4 en: 29 de Septiembre de 2007, 06:14:12 »
El_Guitre ... si te funciona bien ¿podrías publicarla? para mirarla y ver si es posible adaptarla a CCS ...  :mrgreen:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado El_Guitre

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1046
Re: Fat16 de CCS 4.049
« Respuesta #5 en: 29 de Septiembre de 2007, 16:11:59 »
La verdad veo complicado poder pasarlo a CCS, el archivo al que llaman las instrucciones es este, y se puede descargar el ejemplo del sitio de Microelectronica Aquí, yo lo probe y pude crear archivos, modificarlos borrarlos y demas.

Desconectado bily

  • PIC10
  • *
  • Mensajes: 13
Re: Fat16 de CCS 4.049
« Respuesta #6 en: 09 de Abril de 2008, 18:41:34 »
 :-/ :-/ :-/HOLA A TODOS ME ENCUENTRO TRABAJANDO CON EL MIKROC YA QUE CON CCS C COMPILER NO PUDE HACER FUNCIONAR EN  FORMATO FAT..... :? :? :?
ACTUALMETE ME ENCUUENTRO TRABAJANDO CON CODIGO DEMO QUE TIENE LA PAGINA (http://www.mikroe.com/zip/mmc-sd_board_examples.zip)  LO COMPILE Y ME SALE FAT NO FOUND NO COMPRENDO PORQUE...... ALGUIEN QUE ME PUEDE DAR UNA MANO....... NO COMPRENDO DONDE PUEDE ESTAR EL ERROR LO HE INTENTADO MODIFICAR EL CODIGO Y TENGO EL MISMO ERROR  ESPERO QUE ALGUIEN ME PUEDA AYUDAR EN ESTE FORO...
/*
 * Project name:
     Mmc_Fat16_Write (Demonstration on usage of Mmc_Fat16 library)
 * Copyright:
     (c) MikroElektronika, 2005 - 2006
  * Revision History:
      20050512:
        - initial release;
      20051204:
        - added test for file delete, to reflect changes in the mmc_fat16 library;
      20060201:
        - added test for swap file creation, to reflect changes in the
          mmc_fat16 library;
 * Description:
     This project consists of several blocks that demonstrate various aspects of
     usage of the Mmc_Fat16 library. These are:
     - Creation of new file and writing down to it;
     - Opening existing file and re-writing it (writing from start-of-file);
     - Opening existing file and appending data to it (writing from end-of-file);
     - Opening a file and reading data from it (sending it to USART terminal);
     - Creating and modifying several files at once;
     - Reading file contents;
     - Deleting file(s);
     - Creating the swap file (see Help for details);
 * Test configuration:
     MCU:             PIC18F452
     Dev.Board:       EasyPIC4
     Oscillator:      HS, 08.000 MHz
     Ext. Modules:    MMC/SD card on PORTC
     SW:              mikroC v6.2.1
 * NOTES:
     - Please make sure that MMC card is properly formatted (to FAT16 or just FAT)
       before testing it on this example!
     - The MMC uses hardware SPI for communication, so make sure that it gets
       properly connected to the port where SPI module is located (PORTC for most
       PICs)!
     - This library is for PIC18 MCUs only!
     - This example expects MMC card to be inserted before reset, otherwise,
       the FAT_ERROR message is displayed!!!
 */

#include <built_in.h>

char
 FAT_ERROR[20] = "FAT16 not found",
 file_contents[50] = "XX MMC/SD FAT16 library by Anton Rieckert\n";

char
 filename[14] = "MIKRO00xTXT";          // File names
unsigned short
 tmp, caracter, loop, loop2;
unsigned long
 i, size;


//I-I-I--------- Writes string to USART
void I_Write_Str(char *ostr) {
  unsigned short i;

  i = 0;
  while (ostr) {
    USART_Write(ostr[i++]);
  }
  USART_Write(0x0A);
}//~

//M-M-M--------- Creates new file and writes some data to it
void M_Create_New_File() {
  filename[7] = 'A';
  Mmc_Fat_Assign(&filename, 1);        // Will not find file and then create file
  Mmc_Fat_Rewrite();                   // To clear file and start with new data
  for(loop = 1; loop <= 99; loop++) {  //  We want 5 files on the MMC card
    usart_write(loop);
    file_contents[0] = loop / 10 + 48;
    file_contents[1] = loop % 10 + 48;
    Mmc_Fat_Write(file_contents, 42);  // write data to the assigned file
  }
}//~

//M-M-M--------- Creates many new files and writes data to them
void M_Create_Multiple_Files() {
  for(loop2 = 'B'; loop2 <= 'H'; loop2++) {
    PORTB = loop2;                    // signal the progress
    filename[7] = loop2;              // set filename
    Mmc_Fat_Assign(&filename, 1);        // find existing file or create a new one
    Mmc_Fat_Rewrite();                // To clear file and start with new data
    for(loop = 1; loop <= 44; loop++) {
      file_contents[0] = loop / 10 + 48;
      file_contents[1] = loop % 10 + 48;
      Mmc_Fat_Write(file_contents, 42); // write data to the assigned file
    }
  }
}//~

//M-M-M--------- Opens an existing file and rewrites it
void M_Open_File_Rewrite() {
  filename[7] = 'C';
  Mmc_Fat_Assign(&filename, 0);
  Mmc_Fat_Rewrite();
  for(loop = 1; loop <= 55; loop++) {
    file_contents[0] = loop / 10 + 64;
    file_contents[1] = loop % 10 + 64;
    Mmc_Fat_Write(file_contents, 42);  // write data to the assigned file
  }
}//~

//M-M-M--------- Opens an existing file and appends data to it
//               (and alters the date/time stamp)
void M_Open_File_Append() {
     filename[7] = 'B';
     Mmc_Fat_Assign(&filename, 0);
     Mmc_Fat_Set_File_Date(2005,6,21,10,35,0);
     Mmc_Fat_Append();                                    // Prepare file for append
     Mmc_Fat_Write(" for mikroElektronika 2005\n", 27);   // Write data to assigned file
}//~

//M-M-M--------- Opens an existing file, reads data from it and puts it to USART
void M_Open_File_Read() {
  filename[7] = 'B';
  Mmc_Fat_Assign(&filename, 0);
  Mmc_Fat_Reset(&size);            // To read file, procedure returns size of file
  for (i = 1; i <= size; i++) {
    Mmc_Fat_Read(&caracter);
    Usart_Write(caracter);         // Write data to USART
  }
}//~

//M-M-M--------- Deletes a file. If file doesn't exist, it will first be created
//               and then deleted.
void M_Delete_File() {
  filename[7] = 'F';
  Mmc_Fat_Assign(filename, 0);
  Mmc_Fat_Delete();
}//~

//M-M-M--------- Tests whether file exists, and if so sends its creation date
//               and file size via USART
void M_Test_File_Exist() {
  unsigned long fsize;
  unsigned int year;
  unsigned short month, day, hour, minute;
  unsigned char outstr[12];

  filename[7] = 'B';       //uncomment this line to search for file that DOES exists
//  filename[7] = 'F';       //uncomment this line to search for file that DOES NOT exist
  if (Mmc_Fat_Assign(filename, 0)) {
    //--- file has been found - get its date
    Mmc_Fat_Get_File_Date(&year, &month, &day, &hour, &minute);
    WordToStr(year, outstr);
    I_Write_Str(outstr);
    ByteToStr(month, outstr);
    I_Write_Str(outstr);
    WordToStr(day, outstr);
    I_Write_Str(outstr);
    WordToStr(hour, outstr);
    I_Write_Str(outstr);
    WordToStr(minute, outstr);
    I_Write_Str(outstr);
    //--- get file size
    fsize = Mmc_Fat_Get_File_Size();
    LongToStr((signed long)fsize, outstr);
    I_Write_Str(outstr);
  }
  else {
    //--- file was not found - signal it
    Usart_Write(0x55);
    Delay_ms(1000);
    Usart_Write(0x55);
  }
}//~

//-------------- Tries to create a swap file, whose size will be at least 100
//               sectors (see Help for details)
void M_Create_Swap_File() {
  size = Mmc_Fat_Get_Swap_File(100);   // see help on this function for details
  if (size) {
    Usart_Write(0xAA);
    Usart_Write(Lo(size));
    Usart_Write(Hi(size));
    Usart_Write(Higher(size));
    Usart_Write(Highest(size));
    Usart_Write(0xAA);
  }
}//~



//-------------- Main. Uncomment the function(s) to test the desired operation(s)
void main() {
     //--- prepare PORTB for signalling
     PORTB = 0;
     TRISB = 0;
     //--- set up USART for the file read
     Usart_Init(9600);
     //--- init the FAT library
     PORTB = 1;
     Spi_Init_Advanced(MASTER_OSC_DIV16, DATA_SAMPLE_MIDDLE, CLK_IDLE_LOW, LOW_2_HIGH);
     if (Mmc_Fat_Init(&PORTC,2) == 0) {
         //--- Test start
         PORTB = 0xF0;
         //--- Test routines. Uncomment them one-by-one to test certain features
//         M_Create_New_File();
         M_Create_Multiple_Files();
         M_Open_File_Rewrite();
         M_Open_File_Append();
//         M_Open_File_Read();
//         M_Delete_File();
//         M_Test_File_Exist();
//         M_Create_Swap_File();
     }
     else {
       I_Write_Str(FAT_ERROR);
     }
     //--- Test termination
     PORTB = 0x0F;
}//~!

ALGUIEN QUE ME AYUDE PORFIZZZZZZZZZZZZZ

Desconectado bily

  • PIC10
  • *
  • Mensajes: 13
Re: Fat16 de CCS 4.049
« Respuesta #7 en: 09 de Abril de 2008, 18:53:32 »
[ :mrgreen: :mrgreen: :mrgreen:
HOLA El_Guitre
ESTOY TRABAJANDO CON EL DEMO DE MIKROC DONDE TIENE EJEMPLOS DEL USO DEL FAT16 Y TENGO UN ERROR QUE ME MUESTRA FAT NO FOUND MODIFIQUE EL CODIGO Y PERSISTE EL  EL ERROR.. QUISIERA QUE ME DES UNA MANO O DE LO CONTRARIO QUE ME PASARAS TU CODIGO O CASO CONTRARIO QUE PUBLIQUE EN EL FORO SIN OTRO PARTICULAR ME DESPIDO SALUDOS Y ESPERO TU RESPUESTA..........
 :-)

Desconectado El_Guitre

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1046
Re: Fat16 de CCS 4.049
« Respuesta #8 en: 09 de Abril de 2008, 23:43:48 »
bily cuando estuve probando la libreria de mikroC, justamente use el código que esta en el ejemplo para descargar del sitio. Y es el que hago referencia mas arriba, me funciono si problemas sin modificarlo. Tu memoria esta formateada desde windows antes de usarla? Tenes que seleccionar formatear y en FAT16.

Desconectado bily

  • PIC10
  • *
  • Mensajes: 13
Re: Fat16 de CCS 4.049
« Respuesta #9 en: 14 de Abril de 2008, 10:58:56 »
La memoria MMC antes de usarlo, tuve que formatearlo pero con FAT es una de las dos opciones que te muestra windows me imagino que es el fat16....o existe algun otro programa para dar formato a Fat16?????... Tambien he abierto mi MMC con WinHex y de la misma forma me muestra en la cabecera de Boot fat16.. pero aun asi persiste el error de fat no found...Tambien he descargado la ayuda de MIKROC y ahi tiene un ejemplo me imagino que es para testear la me memoria MMC porque me muestra el nombre de mi memoria.. pero con ese ejemplo funciona....pero con el demo nada.... no funciona.. Amigo Guitre espero que publiques tu codigo gracias y saludos a todos que tambien estan en las mismas con sus proyectos...


 

anything