📄 msp430sdwrite.c
字号:
/***************************************************************************\
文件名称:MSP430与SD卡接口设计
芯片类型:MSP430F149
开发软件:IAR Embedded Workbench 4.0,Windows XP
程序功能:SD卡的读写
\***************************************************************************/
/***************************************************************************\
SD连线图
*5.0---CS* *5.1---DI* *5.2---DO* *5.3---Clk*
\***************************************************************************/
// 头文件
#include <msp430x14x.h>
#include <string.h>
#include "sd.h"
extern char card_state;
extern char sd_buffer[512];
char card_state = 0; // card state: 0: not found, 1 found (init successfull)
unsigned long loop;
void main (void)
{volatile unsigned char dco_cnt = 255;
BCSCTL1 &= ~XT2OFF; // XT2on
do // wait for MCLK from quartz
{IFG1 &= ~OFIFG; // Clear OSCFault flag
for (dco_cnt = 0xff; dco_cnt > 0; dco_cnt--); // Time for flag to set
}
while ((IFG1 & OFIFG) != 0); // OSCFault flag still set?
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 = 0x07; // LFXT1: XT2on: LF quartz for MCLK
BCSCTL2 = SELM1 + SELS; // LFXT2: use HF quartz (XT2)
DCOCTL = 0xe0;
P5SEL = 0x00;
P5DIR = 0xFF;
P5OUT = 0xFF;
for (;;)
{if (initSD() == SD_SUCCESS) // card found
{card_state |= 1;
// Read Out Card Type and print it or trace memory
memset(&sd_buffer,0,512);
sdReadRegister (10, 16);
sd_buffer[7]=0;
// PLease mofify based on your Compiler sim io function
// debug_printf("Multi Media Card Name: %s",&mmc_buffer[3]);
// Fill first Block (0) with 'A'
memset(&sd_buffer,'A',512); // set breakpoint and trace mmc_buffer contents
sdWriteBlock(0x00);
// Fill second Block (1)-AbsAddr 512 with 'B'
memset(&sd_buffer,'B',512);
sdWriteBlock(512);
// Read first Block back to buffer
memset(&sd_buffer,0x00,512);
sdReadBlock(0x00,512);
memset(&sd_buffer,0x00,512); // set breakpoint and trace mmc_buffer contents
sdReadBlock(512,512);
memset(&sd_buffer,0x00,512); // set breakpoint and trace mmc_buffer contents
}
else
{//Error card not detected or rejected during writing
// switch red led on
card_state = 0; // no card
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -