?? main.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"
#define BEEP (1<<27)
sd_struct sds; // 定義卡信息結構體
/*
*********************************************************************************************************
** 函數名稱: BeepOnOff()
** 函數功能: 控制蜂鳴器蜂鳴
** 入口參數: cnt 蜂鳴次數
** 出口參數: 無
** 調試說明: 無
*********************************************************************************************************
*/
void BeepOnOff(uint32 cnt)
{
uint32 i,j;
for(i=0;i<cnt;i++)
{
IO1CLR = BEEP;
for(j=0;j<0x500000;j++); // 延時,控制一次鳴叫時間
IO1SET = 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;
}
PINSEL3 = 0x00000000; // 設置管腳連接GPIO
IO1DIR = BEEP; // 設置BEEP控制口為輸出
IO1SET = 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 + -