
#include "myapph"
#include "ICETEK-VC5509-EDUh"
#include "scancodeh"
// :-- 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: McBSP2FSR S22
//SPCR1RRST_=0,PCRRIOEN=1,PCRFSRM=1,PCRFSRP=0/1
SPCR1_2&=0x0fffe;
PCR2|=0x1400;
// IOPin: McBSP1CLKX S14
//SPCR2XRST_=0,PCRXIOEN=1,PCRCLKXM=1,PCRCLKXP=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型号了,查查数据手册吧。
DSP的编程软件是CCS开发平台,编程语言一般是C语言。
CCS有两种工作模式:
1、软件仿真器模式:可与DSP芯片分离,并在PC上模拟DSP指令集和工作机制,主要用于早期算法的实现和调试。
2、硬件在线编程模式:可以在DSP芯片上实时运行,结合硬件开发板的在线编程和调试应用程序。
CCS的开发系统主要由以下组件构成:
1、TMS320C54x集成代码生成工具。
2、CCS集成开发环境。
3、DSP / BIOS实时内核插件及其应用程序接口API。
4、RTDX插件,用于实时数据交换和相应的程序接口API。
5、TI以外的第三方提供的各种应用程序模块插件。
扩展资料:
dsp编程中双重循环、多重循环的优化:
1、将多个循环分成单层循环以减少循环数;
例如,在双循环中,一个周期仅使用一个乘法器。 分成单层环路后,两个乘法器可以使用一个周期,充分利用DSP乘法器资源,运算速度也将提高。
2、循环次数少的放在外层循环,循环次数多的放在内存循环;
3、二维数组的双循环:二维数组的行循环置于外循环,列循环置于内循环;
4、避免在循环内进行乘法和除法运算:将循环内的乘法和除法运算尽可能移至循环外,并用加法代替。
dspbuf[0]的值变为11。
这是一个程序语句,表示将数字11赋值给数组dspbuf的第一个元素,也就是dspbuf[0]的值变为11。其中,dspbuf是一个数组,[0]表示数组中的第一个元素,即索引为0的元素。
程序语句是计算机程序中的最基本单元,是一条可执行的指令或命令。
单单从这个程序是看不出什么问题的。
你可在b=2这一行前面打个断点,看看程序是不是能运行到这一行,可能你的DELAY_US是一个死循环,所以使程序运行不到下面这一行。另外,如果你的程序运行到b=2这一行后,单步调试一下,看看b值的变化情况,基本就能发现问题。
用的都是CCS编程。
CCS有两种工作模式:
1软件模拟器模式:可以从DSP芯片中分离出来,在PC上模拟DSP的指令集和工作机制,主要用于前期算法的实现和调试。
2硬件在线编程模式:在DSP芯片上实时运行,将应用程序的在线编程和调试与硬件开发板集成。
CCS的开发系统主要由以下组件构成:
1TMS320C54x集成代码生成工具;
2CCS综合开发环境;
3DSP/BIOS实时内核插件及其应用程序接口API;
4实时数据交换RTDX插件及相应的编程接口API;
5由第三方TI公司对外提供多种应用模块插件。
扩展资料:
dsp编程中双重循环、多重循环的优化:
(1)多重循环拆成单层循环,减少循环层数;
例如,双重循环内一个百cycle只使用了一个乘法器,拆成单层循环后,一个cycle可使用2个乘法器,充分利用DSP乘法器资源,同时运算速度也会加快;
(2)如果循环次数较少,则将其放入外循环;如果循环次数更多,则将其放入内存循环;
(3)二维数组的双环:二维数组的行循环置于外环,列循环置于内环;
(4)避免循环内的乘除 *** 作:循环内的乘除 *** 作移到循环外,由加法代替。
以上就是关于DSP直流电动机程序注释全部的内容,包括:DSP直流电动机程序注释、请问DSP编程软件是什么,,应该用什么编程语言、dspbuf[0]=11是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)