This code uses the MMC.c library and MMC.h header
//******************************************************************************* // MSP-MMC Demo - Demo to show how to use the MMC library // // Description; This example shows the correct setup and usage of the MMC // Library // // // S. Schauer // Texas Instruments, Inc // June 2005 // Updated for IAR Embedded Workbench Version: 3.31B //****************************************************************************** /* *********************************************************** * THIS PROGRAM IS PROVIDED "AS IS". TI MAKES NO WARRANTIES OR * REPRESENTATIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, * INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR * COMPLETENESS OF RESPONSES, RESULTS AND LACK OF NEGLIGENCE. * TI DISCLAIMS ANY WARRANTY OF TITLE, QUIET ENJOYMENT, QUIET * POSSESSION, AND NON-INFRINGEMENT OF ANY THIRD PARTY * INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE PROGRAM OR * YOUR USE OF THE PROGRAM. * * IN NO EVENT SHALL TI BE LIABLE FOR ANY SPECIAL, INCIDENTAL, * CONSEQUENTIAL OR INDIRECT DAMAGES, HOWEVER CAUSED, ON ANY * THEORY OF LIABILITY AND WHETHER OR NOT TI HAS BEEN ADVISED * OF THE POSSIBILITY OF SUCH DAMAGES, ARISING IN ANY WAY OUT * OF THIS AGREEMENT, THE PROGRAM, OR YOUR USE OF THE PROGRAM. * EXCLUDED DAMAGES INCLUDE, BUT ARE NOT LIMITED TO, COST OF * REMOVAL OR REINSTALLATION, COMPUTER TIME, LABOR COSTS, LOSS * OF GOODWILL, LOSS OF PROFITS, LOSS OF SAVINGS, OR LOSS OF * USE OR INTERRUPTION OF BUSINESS. IN NO EVENT WILL TI'S * AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING OUT OF * YOUR USE OF THE PROGRAM EXCEED FIVE HUNDRED DOLLARS * (U.S.$500). * * Unless otherwise stated, the Program written and copyrighted * by Texas Instruments is distributed as "freeware". You may, * only under TI's copyright in the Program, use and modify the * Program without any charge or restriction. You may * distribute to third parties, provided that you transfer a * copy of this license to the third party and the third party * agrees to these terms by its first use of the Program. You * must reproduce the copyright notice and any other legend of * ownership on each copy or partial copy, of the Program. * * You acknowledge and agree that the Program contains * copyrighted material, trade secrets and other TI proprietary * information and is protected by copyright laws, * international copyright treaties, and trade secret laws, as * well as other intellectual property laws. To protect TI's * rights in the Program, you agree not to decompile, reverse * engineer, disassemble or otherwise translate any object code * versions of the Program to a human-readable form. You agree * that in no event will you alter, remove or destroy any * copyright notice included in the Program. TI reserves all * rights not specifically granted under this license. Except * as specifically provided herein, nothing in this agreement * shall be construed as conferring by implication, estoppel, * or otherwise, upon you, any license or other right under any * TI patents, copyrights or trade secrets. * * You may not use the Program in non-TI devices. * ********************************************************* */ #include <msp430x16x.h> #include <stdio.h> #include "mmc.h" unsigned long cardSize = 0; unsigned char status = 1; unsigned int timeout = 0; unsigned long i = 0; unsigned char buffer[512], buffer2[]={"hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!hola y c h a o!"}; // int main( void ) { WDTCTL = WDTPW + WDTHOLD; //Initialisation of the MMC/SD-card while (status != 0) // if return in not NULL an error did occur and the // MMC/SD-card will be initialized again { status = initMMC(); timeout++; if (timeout == 50) // Try 50 times till error { printf ("No MMC/SD-card found!! %x\n", status); break; } } while ((mmc_ping() != MMC_SUCCESS)); // Wait till card is inserted // Read the Card Size from the CSD Register cardSize = MMC_ReadCardSize(); printf ("Card Size: %ld\n", cardSize); /* for (i = 0; i <= 512; i++) buffer[i] = i; mmcWriteSector(1, buffer); // write a 512 Byte big block beginning at the (aligned) adress for (i = 0; i <= 512; i++) buffer[i] = i+64; mmcWriteSector(2, buffer); // write a 512 Byte big block beginning at the (aligned) adress mmcReadSector(1, buffer); // read a size Byte big block beginning at the address. mmcReadSector(2, buffer); // read a size Byte big block beginning at the address. for(i=50430;i<50450;i++) { mmcReadSector(i, buffer); printf ("%s\n", buffer); } */ mmcWriteSector(100003, "Ticket de Asistencia"); /*for(i=100002;i<100009;i++)//for(i=50439;i<50444;i++) { mmcReadSector(i, buffer); printf ("%s\n", buffer);*/ mmcReadSector(100003, buffer); printf ("%s\n", buffer); //printf ("%lu: %s\n",i, buffer); //} /* mmcWriteSector(100001, "ID MSP430###########"); mmcWriteSector(100002, "0102030405060708091011121314000000000000"); mmcWriteSector(100003, "Ticket de Prueba####"); mmcWriteSector(100004, "Dhemax Ltda.########"); mmcWriteSector(100005, "Apellidos###########"); mmcWriteSector(100006, "Nombres#############"); mmcWriteSector(100007, "RUT#################"); mmcWriteSector(100008, "No Empleado#########"); mmcWriteSector(100009, "PayRoll#############"); mmcWriteSector(100010, "Codigo Tarjeta######"); mmcWriteSector(100011, "Centro Costo########"); mmcWriteSector(100012, "D.C.Costo###########"); mmcWriteSector(100013, "Codigo Area#########"); mmcWriteSector(100014, "D.C.Area############"); mmcWriteSector(100015, "Codigo Cargo########"); mmcWriteSector(100016, "D.C.Cargo###########"); mmcWriteSector(100017, "Estado##############"); mmcWriteSector(100018, "Dedo################"); mmcWriteSector(100019, "Opcion##############"); mmcWriteSector(100020, "Lector##############"); mmcWriteSector(100021, "Fecha###############"); mmcWriteSector(100022, "Horario#############"); mmcWriteSector(100023, "Clave###############"); mmcWriteSector(100024, "Hora################"); */ mmc_GoIdle(); // set MMC in Idle mode //mmcWriteSector(21965, "Contreras Mardones############|Victor Adolfo#################|Descripcion CentroCosto Victor|51########|X-Files#######################|852#######|No sabemos que poner aqui#####|El no come"); //mmcWriteSector(50441, "Alvina Olavarria##############|Alejandro Andres##############|Descripcion CentroCosto Alvina|101#######|No se me ocurre###############|753#######|No sabemos que poner aqui 2###|El si come"); //mmcWriteSector(65545, "0102030405060708091011121314000000000000"); //mmc_GoIdle(); while (1); }