?? d12driver.c
字號:
/****************************************Copyright (c)**************************************************
** 廣州周立功單片機發展有限公司
** 研 究 所
** 產品一部
**
** http://www.zlgmcu.com
**
** 文 件 名: D12Driver.c
** 最后修改日期: 2004年7月2日
** 描 述: USB驅動程序軟件包: PDIUSBD12 設備端驅動程序 應用層
** 版 本: V1.0
**********************************************************************************************************/
#include "config.h"
#include "D12Config.h"
#include "D12CI.h"
#include "D12HAL.h"
#include "Chap_9.h"
#include "D12Driver.h"
extern EPPFLAGS bEPPflags;
extern INT8U feng;
/*********************************************************************
** 函數名稱: INT8U Init_D12(void)
** 功能描述: 設置D12與硬件的連接, 初始化D12, 復位D12
** 輸 入: 無
** 輸 出: 0: 初始化成功 1: 初始化失敗
**********************************************************************/
INT8U Init_D12(void)
{
Init_D12Port(); //初始化PDIUSBD12與LPC2200的連接的硬件配置
Rst_D12(); //復位PDIUSBD12
reconnect_USB(); //重新連接USB
if (readchipid() != 0x1012){ //讀取芯片ID號,如果不為 1012H
return 1; //則復位失敗
}
return 0; //初始化成功
}
//總線復位處理子程序
void bus_reset(void)
{
}
//DMA結束處理
void dma_eot(void)
{
}
//總線掛起改變
void usb_suspend(void)
{
}
/******************************************
** 函數名稱: void Usb_Exception(void)
** 功能描述: D12中斷服務程序
*******************************************/
void Usb_Exception(void)
{
INT16U i_st;
feng++;
i_st = D12_ReadInterruptRegister(); //讀取PDIUSBD12中斷寄存器值
if(i_st != 0) {
if(i_st & D12_INT_BUSRESET)
bus_reset(); //總線復位處理
if(i_st & D12_INT_EOT)
dma_eot(); //DMA傳輸技術處理
if(i_st & D12_INT_SUSPENDCHANGE)
usb_suspend(); //總線掛起改變
if(i_st & D12_INT_ENDP0IN)
ep0_txdone(); //控制端點發送數據處理
if(i_st & D12_INT_ENDP0OUT)
ep0_rxdone(); //控制端點接收數據處理
if(i_st & D12_INT_ENDP1IN)
; //端點 1發送數據處理
if(i_st & D12_INT_ENDP1OUT)
; //端點 1接收數據處理
if(i_st & D12_INT_ENDP2IN)
; //端點 2發送數據處理
if(i_st & D12_INT_ENDP2OUT)
; //端點 2接收數據處理
}
CLR_INTD12(); //清除PDIUSBD12的中斷標志
CLR_INT(); //通知中斷結束
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -