usb.c
来自「dsp芯片TMS320C5416实验程序」· C语言 代码 · 共 75 行
C
75 行
#include <stdio.h>
#include "DataType.h"
#include "d12def.h"
main()
{
unsigned int id = 0x1012;
// 判断系统主频
#define CLKMD *(volatile unsigned int*)0x58
#define BSCR *(volatile unsigned int*)0x29
#define SWCR *(volatile unsigned int*)0x2B
#define SWWSR *(volatile unsigned int*)0x28
switch(CLKMD&0xF00F)
{
case 0xE007: // PLL*15
SWWSR |= 0x7000;
SWCR |= 0x0001;
case 0x9007: // PLL*10
SWWSR &= ~0x7000;
SWWSR |= 0x5000;
SWCR |= 0x0001;
break;
case 0x4007: // PLL*5
SWWSR |= 0x5000;
SWCR &= 0x0000;
break;
case 0x1007: // PLL*2
SWWSR &= ~0x7000;
SWWSR |= 0x5000;
SWCR &= 0x0000;
break;
case 0xF007: // PLL*1
case 0x0000: // 1/2 *
case 0xF000: // 1/4
default:
SWWSR &= ~0x7000;
SWWSR |= 0x3000;
SWCR &= 0x0000;
}
/* 关闭中断,并将中断向量表设置为0x80 */
asm(" LDM PMST,A");
asm(" AND #7FH,A");
asm(" OR #80h,A");
asm(" STLM A,PMST");
asm(" STM #0h,IMR ");
/* 检测USB芯片 */
id = D12RdChipId();
if(id!=0x1012)
{
while(1) Dead();
}
UsbInit();
/* 开启中断 */
asm(" LDM IMR,A ");
asm(" OR #100h, A");
asm(" STLM A, IMR");
asm(" RSBX INTM ");
asm(" NOP ");
asm(" NOP ");
/* 循环等待,永不退出 */
while(1)
{
//extern void usbd12_isr(void);
//usbd12_isr();
};
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?