📄 main.#3
字号:
#include "common.h"
#define sl811_addr 0x8800
/***********************************************************************************
* 函数名称:SYSCLK_Init;
*
* 函数功能描述:系统时钟初始化,使用外部22.1184MHz晶振作为时钟源;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: none;
************************************************************************************/
void SYSCLK_Init (void)
{
int i; // 延时计数器
OSCXCN = 0x67; // 使用外部22.1184MHz晶振
for(i=0; i<256; i++); // 等待1ms
while(!(OSCXCN & 0x80)); // 等待外部振荡器稳定
OSCICN = 0x88; // 切换到外部晶振
}
/***********************************************************************************
* 函数名称:PORT_Init;
*
* 函数功能描述:配置端口初始化,配置交叉开关和端口;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: none;
************************************************************************************/
void PORT_Init (void)
{
XBR0 = 0x07; //设置XBR0
// XBR1 = 0x1e; //设置XBR1
XBR2 = 0x44; //打开交叉开关和弱上拉
// P3MDOUT = 0xff; //设置P3口全部推挽输出
P74OUT = 0xfb; //设置P4-P7口输出
P4 = 0xe0;
//外部存储器时序控制
EMI0CF=0x24;
EMI0TC=0x21;
}
/************************************************************************************
// 主循环程序
*************************************************************************************/
void main(void)
{
unsigned char temp;
unsigned char flag = 0;
WDTCN = 0xde;
WDTCN = 0xad;
SYSCLK_Init();
PORT_Init();
Uart0_Init(BaudRate_115200);
Uart0_SendString("System started!\n");
flag=0;
while(1)
{
USBhard_Reset();
temp=SL811Read(IntStatus);
_nop_();
if ((temp&0x80)==0x80)
{
if (flag==0)
Uart0_SendString("Find U Disk!\n");
flag = 1;
}
else
{
if (flag==1)
Uart0_SendString("U Disk removed!\n");
flag = 0;
}
}
/*
if ((temp&0x80)==0)
{
SL811Write(0x0e,0xff);
SL811Write(0x0e,0x0e);
SL811Write(0x05,0x21);
}
else if ((temp&0x80)==0x80)
{
SL811Write(0x0e,0xae);
SL811Write(0x0e,0x0e);
SL811Write(0x05,0x05);
}
else
SL811Write(0x0d,0xff);
SL811Write(0x00,0x50);
SL811Write(0x04,0x00);
SL811Write(0x00,0x01);
DelayMs(10);
// sl811_init();
while(1)
{
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -