⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 SmartARM2400系列开发板全套资料
💻 C
字号:
/****************************************Copyright (c)*****************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:			
** Modified date:		
** Version:
** Descriptions:		
** 说明:				
**
**********************************************************************************************************/
#include 	"config.h"
#include 	"string.h"

#define BEEP (1<<30) 

sd_struct sds;															/* 定义卡信息结构体			 */

/**********************************************************************************************************
** 函数名称: BeepOnOff()
** 函数功能: 控制蜂鸣器蜂鸣
** 入口参数: cnt 蜂鸣次数
** 出口参数: 无
** 调试说明: 无
**********************************************************************************************************/
void BeepOnOff(uint32 cnt)
{
	uint32 i,j;
	for(i=0;i<cnt;i++) {
		FIO3CLR = BEEP;
		for(j=0;j<0x500000;j++);										/* 延时,控制一次鸣叫时间		 */
		FIO3SET = BEEP;
		for(j=0;j<0x500000;j++);
	}
}

/**********************************************************************************************************
** 函数名称: SetISR()
** 函数功能: 设置向量中断
** 入口参数: no		  中断号
**			 pri	  中断优先级
**			 isr_func 中断服务函数入口地址
** 出口参数: 操作是(1)否(0)成功
** 调试说明:
**********************************************************************************************************/
uint8 SetISR(uint32 no, uint32 pri, uint32 isr_func)
{
    if(no > 31) return 0;
    if(pri > 15) return 0;
    
    *(volatile uint32*)((&VICVectAddr0)+no) = isr_func;        			/* 设置中断服务函数				 */

    *(volatile uint32*)((&VICVectPri0)+no)= pri & 0x0F;        			/* 设置中断优先级				 */
    VICIntSelect &= ~(1<<no);
    VICIntEnable = 1<<no;
    
    return 1;
}
/**********************************************************************************************************
** 函数名称 :main()
** 函数功能 :
** 调试说明 :
**********************************************************************************************************/
int main (void)
{
	uint32 i;
	uint8 status;
	uint8 sdbuf[512]={0};
	uint8 sdbuf2[512]={0};
	
	for(i=0;i<512;i++) {							
		sdbuf[i] = i&0xff;
	}
	
	FIO3DIR |= BEEP;													/* 设置BEEP控制口为输出			 */
	FIO3SET  = BEEP;

	status = SD_Initialize(&sds);										/* SD 初始化					 */
	
	if (status != SD_NO_ERR) {
		while(1);
	}
	
	SetISR(24, 5, (uint32)MCI_Handler);           						/* 设置SD/MMC卡控制器的中断向量	 */ 
	IRQEnable();
	
	status = SD_WriteBlock(&sds,0,sdbuf);								/* 将sdbuf缓冲区的数据写入第0块中*/
	if (status != SD_NO_ERR) {
		while(1);
	}
	
	status = SD_ReadBlock(&sds,0,sdbuf2);								/* 读第0块的数据				 */
	if (status != SD_NO_ERR) {
		while(1);
	}
	
		
	status = memcmp(sdbuf,sdbuf2,512);									/* 对sdbuf2与sdbuf的内容进行比较 */  
	if(status!=0) {														/* 数据比较错误,蜂鸣器蜂鸣三声	 */ 
		BeepOnOff(3);
	
	} else {															/* 正确,蜂鸣一声				 */
		BeepOnOff(1);
	}
	
	while(1);
	
    return 0;
}
/**********************************************************************************************************
**                            End Of File
**********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -