DSP直流电动机程序注释

DSP直流电动机程序注释,第1张

#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型号了,查查数据手册吧。

bootloader是dsp芯片上固化的一段引导程序,dsp程序在ram上掉电易丢,所以启动时运行bootloader将辅存中的程序调入ram中

至于dsp的框架结构在ti公司有(有点复杂),开发时通常是先在开发板上仿真然后实践,由于dsp一般用于数字信号处理,离不开matlab软件连调。说起来有点复杂,要熟悉dsp开发流程序最简单的方法就是自己动手实践一下,如做个滤波器,频谱分析器等就可以深刻了解了。

ps有点繁琐,自己慢慢体会!

DSP得软件开发流程为:将一个或多个汇编语言程序(源程序)经过汇 编与链接 ,生成COFF 格式得可执行文件,再通过软件仿真器或在线仿真器得调试,打开FlashBurn软件,新建一个cdd文件并进行设置装载FBTCout,然后再擦除和烧写Flash 去掉仿真器并复位DSP目标板来加载。

在现有的硬件基础上开发DSP软件大体步骤如下:

一、准备阶段

1、分析开发项目需求,即软件所需要具备的功能,如AD采样、通讯、外设控制等等;

2、了解硬件平台资源,如硬件存储器资源、外设IO资源、通讯接口等等,为DSP的初始化工作做准备的;

3、结合硬件资源和需求制定一个可行的软件方案;

二、代码编写阶段

代码编写因人而异,大体步骤:

1、搭建文件框架,一般一种功能对应一个C文件和H文件,根据11软件需求来;(特别提醒不要把所有代码都放在一个或几个文件里,不然哪怕注释得再清楚,在后期的调试和维护时都很费劲)

2、搭建函数框架,文件搭好后,在对应的文件中添加对应的功能函数,函数只需要定义函数名即可,如VoidSystemInit(){;};

3、函数框架也搭好后就可以开始添加代码了,首先是添加DSP器件相关程序,比如系统时钟配置,中断函数;I/O功能脚配置等;其次逐块添加算法代码,原则是从易到难,每个函数框架代码搭建完后最好都进行测试。

三、调试优化阶段

以上一块块功能测试正常后,就可以开始整体测试了,直至最终调试完成。

以上就是关于DSP直流电动机程序注释全部的内容,包括:DSP直流电动机程序注释、DSP的开发流程是、怎样生成可执行的DSP文件,怎样进行DSP程序的加载等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/10206264.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存