📄 main.c
字号:
/*************************************************
Function name: 这是基础实验的一个模版
Parameter : 无
Description : 做基础实验,直接调用该模板即可
Return : 无
Argument : 无
Autor & date : Daniel
**************************************************/
#define GLOBAL_CLK 1
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "profile.h"
#include "memtest.h"
void key_init(void);
static void __irq key_handler(void);
void beep_init(void);
void beep_run(void);
/*************************************************
Function name: delay
Parameter : times
Description : 延时函数
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
void delay(int times)
{
int i,j;
for(i=0;i<times;i++)
for(j=0;j<400;j++);
}
/*************************************************
Function name: Main
Parameter : void
Description : 主功能函数
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
void Main(void)
{
beep_init();
MMU_Init();
key_init();
while(1);
}
/*************************************************
Function name: key_init()
Parameter : void
Description : 按键K1的初始化函数
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
void key_init(void)
{
rGPGCON &= ~(0x3<<0); /*set eint8 as interrupt*/
rGPGCON |= (0x2<<0);
rEXTINT1 &= ~(0xf<<0); /*set eint8 with low level*/
rEINTPEND |= (1<<8);
rEINTMASK &= ~(1<<8);
/*设置ISR*/
pISR_EINT8_23=(U32)key_handler;
EnableIrq(BIT_EINT8_23);
}
/*************************************************
Function name: key_handler()
Parameter : void
Description : 按键K1的中断服务子程序
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
static void __irq key_handler(void)
{
/*判断是否是按键K1产生的中断*/
if(rINTPND==BIT_EINT8_23)
{
ClearPending(BIT_EINT8_23);
if(rEINTPEND&(1<<8))
{
rEINTPEND |= 1<< 8;
beep_run();
}
}
}
/*************************************************
Function name: beep_init()
Parameter : void
Description : 初始化蜂鸣器
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
void beep_init(void)
{
rGPBCON &= ~(0x3<<0);
rGPBCON |= (0x1<<0);
}
/*************************************************
Function name: beep_run()
Parameter : void
Description : 运行蜂鸣器
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
void beep_run(void)
{
rGPBDAT |= (0x1<<0);
delay(50);
rGPBDAT &= (0x0<<0);
delay(50);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -