DSP直流电动机程序注释

谁能帮忙注释下这段啊,多谢了

#include "myapp.h"
#include "ICETEK-VC5509-EDU.h"
#include "scancode.h"
// :-- Define Timer 0 's Registers ---//
ioport unsigned int *tim0;
ioport unsigned int *prd0;
ioport unsigned int *tcr0;
ioport unsigned int *prsc0;
// :-- End of Define -----------------//

void InitMcBSP();

unsigned int uN,nCount,nCount1;

main()
{
unsigned char dbScanCode,dbOld;

dbScanCode=dbOld=0;
nCount=nCount1=0;
PLL_Init(20);
SDRAM_init();
InitCTR();
InitMcBSP();

uN=60;

CTRGR=1;

InitInterrupt();
TIME_init();

while ( 1 )
{
if ( nCount1==0 )
{
dbScanCode=GetKey();
if ( dbScanCode!=dbOld )
{
dbOld=dbScanCode;
if ( dbScanCode==SCANCODE_9 )
break;
else if ( dbScanCode==SCANCODE_7 )
PCR1|=2;
else if ( dbScanCode==SCANCODE_8)
PCR1&=0x0fffd;
else if ( dbScanCode==SCANCODE_1 )
uN=60;
else if ( dbScanCode==SCANCODE_2 )
uN=40;
else if ( dbScanCode==SCANCODE_3 )
uN=20;
else if ( dbScanCode==SCANCODE_4 )
uN=10;
else if ( dbScanCode==SCANCODE_5 )
uN=0;
}
}
}
CloseCTR();
exit(0);
}

void InitInterrupt(void)
{
// 设置中断控制寄存器
IVPD=0x80;
IVPH=0x80;
IER0=0x10;
DBIER0 =0x10;
IFR0=0xffff;
asm(" BCLR INTM");
}

void interrupt Timer() //中断响应函数
{
nCount++; nCount%=100;
if ( nCount>uN ) PCR2|=4;
else PCR2&=0x0fffb;
nCount1++; nCount1%=5120;
}

void InitMcBSP()
{
// IOPin: McBSP2.FSR S22
//SPCR1.RRST_=0,PCR.RIOEN=1,PCR.FSRM=1,PCR.FSRP=0/1
SPCR1_2&=0x0fffe;
PCR2|=0x1400;
// IOPin: McBSP1.CLKX S14
//SPCR2.XRST_=0,PCR.XIOEN=1,PCR.CLKXM=1,PCR.CLKXP=0/1
SPCR2_1&=0x0fffe;
PCR1|=0x2200;
}

void TIME_init(void)
{
tim0 = (unsigned int *)0x1000;
prd0 = (unsigned int *)0x1001;
tcr0 = (unsigned int *)0x1002;
prsc0 = (unsigned int *)0x1003;
*tcr0 = 0x04f0;
*tim0 = 0;
*prd0 = 0x0100;
*prsc0 = 2;
*tcr0 = 0x00e0;
}

#include "myapp.h"
#include "ICETEK-VC5509-EDU.h"
#include "scancode.h"
// :-- Define Timer 0 's Registers ---//
ioport unsigned int *tim0;
ioport unsigned int *prd0;
ioport unsigned int *tcr0;
ioport unsigned int *prsc0;
// :-- End of Define -----------------//

void InitMcBSP(); //函数声明

unsigned int uN,nCount,nCount1; //定义外部变量

main() //主程序
{
unsigned char dbScanCode,dbOld; //定义内部变量

dbScanCode=dbOld=0;
nCount=nCount1=0;
PLL_Init(20); //初始化PLL
SDRAM_init(); //初始化SDRAM
InitCTR(); //初始化CTR
InitMcBSP(); //初始化McBSP

uN=60;

CTRGR=1;

InitInterrupt(); //初始化中断
TIME_init(); //初始化定时器

while ( 1 )
{
if ( nCount1==0 )
{
dbScanCode=GetKey(); //读取键盘输入的信息
if ( dbScanCode!=dbOld ) //如果键盘输入信息改变,执行
{
dbOld=dbScanCode;
if ( dbScanCode==SCANCODE_9 )
break;
else if ( dbScanCode==SCANCODE_7 )
PCR1|=2;
else if ( dbScanCode==SCANCODE_8)
PCR1&=0x0fffd;
else if ( dbScanCode==SCANCODE_1 )
uN=60;
else if ( dbScanCode==SCANCODE_2 )
uN=40;
else if ( dbScanCode==SCANCODE_3 )
uN=20;
else if ( dbScanCode==SCANCODE_4 )
uN=10;
else if ( dbScanCode==SCANCODE_5 )
uN=0;
}
}
}
CloseCTR(); //关显示器
exit(0);
}

void InitInterrupt(void)
{
// 设置中断控制寄存器
IVPD=0x80;
IVPH=0x80;
IER0=0x10;
DBIER0 =0x10;
IFR0=0xffff;
asm(" BCLR INTM");
}

void interrupt Timer() //中断响应函数
{
nCount++; nCount%=100;
if ( nCount>uN ) PCR2|=4;
else PCR2&=0x0fffb;
nCount1++; nCount1%=5120;
}

void InitMcBSP()
{
// IOPin: McBSP2.FSR S22
//SPCR1.RRST_=0,PCR.RIOEN=1,PCR.FSRM=1,PCR.FSRP=0/1
SPCR1_2&=0x0fffe;
PCR2|=0x1400;
// IOPin: McBSP1.CLKX S14
//SPCR2.XRST_=0,PCR.XIOEN=1,PCR.CLKXM=1,PCR.CLKXP=0/1
SPCR2_1&=0x0fffe;
PCR1|=0x2200;
}

void TIME_init(void)
{
tim0 = (unsigned int *)0x1000;
prd0 = (unsigned int *)0x1001;
tcr0 = (unsigned int *)0x1002;
prsc0 = (unsigned int *)0x1003;
*tcr0 = 0x04f0;
*tim0 = 0;
*prd0 = 0x0100;
*prsc0 = 2;
*tcr0 = 0x00e0;
}
涉及到外设部分就得看具体的DSP型号了,查查数据手册吧。
温馨提示:答案为网友推荐,仅供参考