📄 dm_usb_bfinit.c
字号:
/**************************************************************************
文件名称: dm_usb_bfinit.c
作者: Andy
版本: 0.1
创建时间 : 2007-11
描述:
文件实现了USB工作下ADSP-BF533的一些常用初始化函数
修改历史:
****************************************************************************/
#ifndef __CPU_H__
#define __CPU_H__
#include <ccblkfn.h>
#include <cdefBF533.h>
#include <sys/exception.h>
#include "bf5xx.h"
#include "cpu.h"
/**********************************************************************************
* 名称 :isp1362_ebiuinit
* 功能 :初始化BF533 EBIU
* 入口参数 :无
* 出口参数 :无
***********************************************************************************/
void isp1362_ebiuinit(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0xffc27bb0;
*pEBIU_AMGCTL = 0x000f;
}
/**********************************************************************************
* 名称 :usbpf_init
* 功能 :初始化BF533的PF接口
* 入口参数 :无
* 出口参数 :无
***********************************************************************************/
void usbpf_init(void)
{//rising edge
// set up programmable flags
*pFIO_DIR &= ~IRQ_PF;//0=Input 1=Output
*pFIO_EDGE |= IRQ_PF;//0-level,1-edge
*pFIO_POLAR |= IRQ_PF;//0-high or rising edge,1-low or falling edge
*pFIO_BOTH &= ~IRQ_PF; //0-sigle edge, 1-both edge
*pFIO_INEN |= IRQ_PF; //0-input buffer disable,1-input buffer enable
*pFIO_MASKB_D |= IRQ_PF;
}
/**********************************************************************************
* 名称 :timer_init
* 功能 :初始化内核时钟和系统时钟
* 入口参数 :pmsel pssel 设置参数
* 出口参数 :无
***********************************************************************************/
void timer_init(void)
{
*pTIMER0_CONFIG = 0x0019;
*pTIMER0_PERIOD = 0x001e8800;
*pTIMER0_WIDTH = 0x00000040;
*pTIMER_DISABLE = 0x0001;
*pTIMER_ENABLE = 0x0001;
}
unsigned char led_value = 0xff;
int timer_cnt = 0;
/**********************************************************************************
* 名称 :EX_INTERRUPT_HANDLER(Timer0_ISR)
* 功能 :定时器中断函数
* 入口参数 :无
* 出口参数 :无
***********************************************************************************/
EX_INTERRUPT_HANDLER(Timer0_ISR)
{
// confirm interrupt handling
*pTIMER_STATUS = 0x0001;
timer_cnt++;
if (timer_cnt%2)
Led4_On();
else
Led4_Off();
usb_isr();
}
int int_cnt = 0;
/**********************************************************************************
* 名称 :EX_INTERRUPT_HANDLER(PFB_ISR)
* 功能 :外部中断函数
* 入口参数 :无
* 出口参数 :无
***********************************************************************************/
EX_INTERRUPT_HANDLER(PFB_ISR) // <--|declaration in exception.h -->
{ // |declaration with _pragma(interrupt) the ISR Startaddress //close Interrupt
*pFIO_FLAG_C = IRQ_PF; // NIC_INT connected to PFx
usb_isr();
int_cnt++;
if (int_cnt%2)
Led4_On();
else
Led4_Off();
}
/**********************************************************************************
* 名称 :irq_init
* 功能 :初始化中断函数
* 入口参数 :无
* 出口参数 :无
***********************************************************************************/
void irq_init(void)
{
// configure interrupt
*pSIC_IAR0 = *pSIC_IAR0 & 0x0fffffff | 0x30000000;
*pSIC_IAR1 = *pSIC_IAR1 & 0xffffffff | 0x00000000;
*pSIC_IAR2 = *pSIC_IAR2 & 0xfff0fff0 | 0x00040006; // map PFB -> ID5 IVG12 ;Timer0 -> ID4 IVG11;
register_handler(ik_ivg11, PFB_ISR);
// register_handler(ik_ivg13, Timer0_ISR); // Timer0 ISR -> IVG 11
*pSIC_IMASK=*pSIC_IMASK | 0x00110000;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -