📄 sys.c
字号:
/****************************************************************************************/
//
// Filename: sys.c
// Function: Config system global parameters and functions
//
/****************************************************************************************/
#include <csl.h>
#include <csl_irq.h>
#include "sysreg.h"
#include "type.h"
/*****************************常量和数据缓冲区的定义***********************************/
unsigned int timeout=0x400;
int datastart;
int comwebuf;
int comrdbuf;
int fifowebuf;
int fifordbuf;
int fifolong;
int fifochannel;
/* 打开系统的串口中断 */
extern void SysInt_Enable(void)
{
IRQ_globalDisable();
IRQ_enable (IRQ_EVT_INT2);
IRQ_globalEnable();
}
/* 读系统寄存器 */
extern unsigned int sysreg_read(unsigned long int port)
{
unsigned int RegValue;
RegValue = (*(unsigned int *)(port));
return(RegValue);
}
/************************************************************************/
/* USB命令接口写的过程 */
/***1、命令接口的地址为0x4,仅用来写寄存器与Endpoint0 */
/***2、数据线的Bit7:为1时为地址操作 */
/*** 为0时为数据操作 */
/***3、数据线的Bit6:为1时为读操作 */
/*** 为0时为写操作 */
/***4、数据线的Bit[5:0]:为寄存器的地址与数据锁存,其中数据只占低四位 */
/***5、写操作: */
/**** 1)写操作时必需保证在FIFOADR[2:0]上为0x4,并且Ready线为高电平 */
/*** 2)向0x4写入要操作寄存器的地址 */
/**** 3)等待Ready线为高电平,写入要操作寄存器数据的高4位 */
/*** 4)等待Ready线为高电平,写入要操作寄存器数据的低4位 */
/************************************************************************/
extern void USB_Command_Write(unsigned int regdata)
{
(*(unsigned int *)(usbcommand)) = regdata;
}
/************************************************************/
/* USB命令接口读 */
/************************************************************/
extern unsigned int USB_Command_Read(void)
{
int RegValue;
RegValue = (*(unsigned int *)(usbcommand));
return(RegValue);
}
/************************************************************/
/* 写USB的FIFO数据缓冲区 */
/************************************************************/
extern BOOL SX2_FifoWriteSingle(long int channel, int value )
{
switch(channel)
{
case 0:
{
(*(unsigned int *)(usbfifo2)) = value;
return(True);
}
case 1:
{
(*(unsigned int *)(usbfifo4)) = value;
return(True);
}
case 2:
{
(*(unsigned int *)(usbfifo6)) = value;
return(True);
}
case 3:
{
(*(unsigned int *)(usbfifo8)) = value;
return(True);
}
default: return(False);
}
}
/************************************************************/
/* 读USB的FIFO数据缓冲区 */
/************************************************************/
extern unsigned int SX2_FifoReadSingle(long int channel)
{
unsigned int RegValue;
switch(channel)
{
case 0:
{
RegValue = (*(unsigned int *)(usbfifo2));
return(RegValue);
}
case 1:
{
RegValue = (*(unsigned int *)(usbfifo4));
return(RegValue);
}
case 2:
{
RegValue = (*(unsigned int *)(usbfifo6));
return(RegValue);
}
case 3:
{
RegValue = (*(unsigned int *)(usbfifo8));
return(RegValue);
}
default: return(False);
}
}
/******************************************************************************/
/* No more */
/******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -