?? 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 + -