www.pudn.com > USBDriver.rar > D12HAL.c
/****************************************Copyright (c)**************************************************
** ¹ãÖÝÖÜÁ¢¹¦µ¥Æ¬»ú·¢Õ¹ÓÐÏÞ¹«Ë¾
** ÑÐ ¾¿ Ëù
** ²úÆ·Ò»²¿
**
** http://www.zlgmcu.com
**
** ÎÄ ¼þ Ãû: D12HAL.c
** ×îºóÐÞ¸ÄÈÕÆÚ: 2004Äê7ÔÂ2ÈÕ
** Ãè Êö: USBÇý¶¯³ÌÐòÈí¼þ°ü: PDIUSBD12 É豸¶ËÇý¶¯³ÌÐò É豸¿ØÖÆÇý¶¯²ã
** °æ ±¾: V1.0
**********************************************************************************************************/
#include "config.h"
#include "D12Config.h"
/************************************************************
** º¯ÊýÃû³Æ: void Init_D12Port(void)
** ¹¦ÄÜÃèÊö: ³õʼ»¯D12ÓëLPC2200µÄÁ¬½Ó¶Ë¿Ú
** Êä¡¡ Èë: ÎÞ
** Êä ¡¡ ³ö: ÎÞ
************************************************************/
void Init_D12Port(void)
{
USBRST_GPIO(); //ʹÄÜUSBRSTΪͨÓÃIO¿Ú
SUSP_GPIO(); //ʹÄÜSUSPΪͨÓÃIO¿Ú
USBRST_OUT(); //USBRSTΪÊä³öIO¿Úö
SUSP_OUT(); //SUSPΪÊä³öIO¿Ú
INIT_INTD12(); //INT_USBΪÖжÏÊäÈë¿Ú
}
/************************************************************
** º¯ÊýÃû³Æ: void Rst_D12(void)
** ¹¦ÄÜÃèÊö: ¸´Î»D12
** Êä¡¡ Èë: ÎÞ
** Êä ¡¡ ³ö: ÎÞ
************************************************************/
void Rst_D12(void)
{
INT32U i;
CLR_USBRST(); //USBRSTÖÃ0
for(i = 0;i < 0x2ffff; i++); //Èí¼þÑÓʱ
SET_USBRST(); //USBRSTÖÃ1
for(i = 0;i < 0xfff; i++); //Èí¼þÑÓʱ
CLR_SUSP(); //SUSPÖÃ0
}
/************************************************************
** º¯ÊýÃû³Æ: void bus_delay(void)
** ¹¦ÄÜÃèÊö: ×ÜÏßÑÓʱ
** Êä¡¡ Èë: ÎÞ
** Êä ¡¡ ³ö: ÎÞ
************************************************************/
void bus_delay(void)
{
INT8U i;
i = D12_NOP; //¶Ô×ÜÏß½øÐвÙ×÷
}
/************************************************************
** º¯ÊýÃû³Æ: void outportc(INT8U Data)
** ¹¦ÄÜÃèÊö: Êä³öÃüÁî
** Êä¡¡ Èë: INT8U Data: ÃüÁî×Ö½Ú
** Êä ¡¡ ³ö: ÎÞ
************************************************************/
void outportc(INT8U Data)
{
bus_delay(); //×ÜÏßÑÓʱ
D12_COM = Data; //·¢ËÍÃüÁî
}
/************************************************************
** º¯ÊýÃû³Æ: void outportd(INT8U Data)
** ¹¦ÄÜÃèÊö: Êä³öÊý¾Ý
** Êä¡¡ Èë: INT8U Data: Êý¾Ý×Ö½Ú
** Êä ¡¡ ³ö: ÎÞ
*************************************************************/
void outportd(INT8U Data)
{
bus_delay(); //×ÜÏßÑÓʱ
D12_DAT = Data; //·¢ËÍÊý¾Ý
}
/************************************************************
** º¯ÊýÃû³Æ: INT8U inportd(void)
** ¹¦ÄÜÃèÊö: ¶ÁÈëÊý¾Ý
** Êä¡¡ Èë: ÎÞ
** Êä ¡¡ ³ö: ¶Áµ½µÄÊý¾Ý
*************************************************************/
INT8U inportd(void)
{
bus_delay(); //×ÜÏßÑÓʱ
return D12_DAT; //¶ÁÈ¡Êý¾Ý
}