导航:首页 > 源码编译 > 小站dsp源码下载

小站dsp源码下载

发布时间:2022-10-07 21:16:04

A. 谁有程序员联合开发网的会员账号,帮我下基于TI—240DSP的开关磁阻电机电流环,速度环的双闭环控制源代码

去TI的官网,搜switched reluctance motor SPRA420A能找到TI出到一份技术文档,最后有程序。TI的datasheet都能在官网找到,很可能都不需要登录。

B. 后缀名为.dsp的文件是什么

项目文件名后缀为dsp(保存项目设置),它维护应用程序中所有的源代码文件,以及Visual C++如何编译、连接应用程序,以便创建可执行程序。Visual C++6的集成开发环境中,通过"File"菜单的"New"命令创建一个新的项目。创建一个项目的同时,也创建了一个项目工作区,项目工作区文件的后缀名为dsw(保存项目工作区的设置)。一个应用程序可以有一个项目及若干个子项目,但只有一个活动的项目。

C. 求一个基于fpga的i2c总线控制器的源代码

// eeprom 24c02,08,16 radom byte read and write master
// author: jiajia.pi
// version: v1.2
// last modify date: 2014/08/19 change busy signal to ready
// clk_div range: 2~65535
// wr/rd bit is bit16 of wrdata, '0'=write, '1'=read
mole i2c_master(
clk, // global clock
reset_n, // global reset
scl, // i2c tri-state clock
sda, // i2c tri-state data
addr, // i2c word address
wrdata, // i2c 24bit write data, include device address, word address, 8bit write datas
rddata, // i2c 8bit read data
ready, // i2c ready output, assert high
ack // i2c acknowledge output
);

parameter [15:0] clk_div = 27_000_000/50_000-1; // i2c clock divsion

input clk;
input reset_n;
input wr;
input rd;
input [23:0]wrdata;
output [7:0]rddata;
output busy;
output ack;
inout scl;
inout sda;

reg [23:0]dat;
reg sco;
reg sdo;
reg [7:0]rddata;
reg busy;
reg ack1,ack2,ack3;

wire sda = sdo?1'bz:0;
wire scl = (sco|i2c_clk)?1'bz:0;
wire ready = !(wr||rd||busy);
wire rdnwr = dat[16];
wire ack = ack1|ack2|ack3;

reg[15:0] cnt;
always@(posedge clk or negedge reset_n)
if(!reset_n)
cnt <= 0;
else if(cnt<clk_div && busy)
cnt <= cnt + 1;
else
cnt <= 0;

wire i2c_clk_high_pos = (cnt==(clk_div>>2));
wire i2c_clk_low_pos = (cnt==(3*clk_div>>2));
wire i2c_dout_pos = (cnt==(clk_div));
wire i2c_din_pos = (cnt==(clk_div>>1));

reg i2c_clk;
always@(posedge clk or negedge reset_n)
if(!reset_n)
i2c_clk <= 0;
else if(i2c_clk_high_pos)
i2c_clk <= 1;
else if(i2c_clk_low_pos)
i2c_clk <= 0;

reg [5:0] sck_cnt;
always@(posedge clk or negedge reset_n)
if(!reset_n)
sck_cnt <= 63;
else if(rd|wr && !busy)
sck_cnt <= 0;
else if(!rdnwr && sck_cnt==19 && i2c_dout_pos)
sck_cnt <= 22;
else if(rdnwr && sck_cnt==30 && i2c_dout_pos)
sck_cnt <= 33;
else if(sck_cnt<44 && i2c_dout_pos)
sck_cnt <= sck_cnt + 1;

always@(posedge clk or negedge reset_n)
if(!reset_n)
dat <= 0;
else if(rd|wr && !busy)
dat <= wrdata;

always@(posedge clk or negedge reset_n)
if(!reset_n)
sdo <= 1;
else if(i2c_dout_pos)
case(sck_cnt)
0: sdo <= 1;
// write start
1: sdo <= 0;
// device address
2: sdo <= dat[23];
3: sdo <= dat[22];
4: sdo <= dat[21];
5: sdo <= dat[20];
6: sdo <= dat[19];
7: sdo <= dat[18];
8: sdo <= dat[17];
9: sdo <= 0; //device write
10: sdo <= 1; // ack1
// word address
11: sdo <= dat[15];
12: sdo <= dat[14];
13: sdo <= dat[13];
14: sdo <= dat[12];
15: sdo <= dat[11];
16: sdo <= dat[10];
17: sdo <= dat[9];
18: sdo <= dat[8];
19: sdo <= 1; // ack2
// read start
20: sdo <= 1;
21: sdo <= 0;
// write data
22: if(rdnwr) sdo <= dat[23]; else sdo <= dat[7];
23: if(rdnwr) sdo <= dat[22]; else sdo <= dat[6];
24: if(rdnwr) sdo <= dat[21]; else sdo <= dat[5];
25: if(rdnwr) sdo <= dat[20]; else sdo <= dat[4];
26: if(rdnwr) sdo <= dat[19]; else sdo <= dat[3];
27: if(rdnwr) sdo <= dat[18]; else sdo <= dat[2];
28: if(rdnwr) sdo <= dat[17]; else sdo <= dat[1];
29: if(rdnwr) sdo <= 1; else sdo <= dat[0];
30: sdo <= 1; // write ack3
// write stop
31: sdo <= 0;
32: sdo <= 1;
// read data
33: sdo <= 1; // bit 7
34: sdo <= 1; // bit 6
35: sdo <= 1; // bit 5
36: sdo <= 1; // bit 4
37: sdo <= 1; // bit 3
38: sdo <= 1; // bit 2
39: sdo <= 1; // bit 1
40: sdo <= 1; // bit 0
41: sdo <= 1; // read no ack
// read stop
42: sdo <= !rdnwr;
43: sdo <= 1;
endcase

always@(posedge clk or negedge reset_n)
if(!reset_n)
rddata <= 0;
else if(i2c_din_pos)
case(sck_cnt)
34: rddata[7]<= sda;
35: rddata[6]<= sda;
36: rddata[5]<= sda;
37: rddata[4]<= sda;
38: rddata[3]<= sda;
39: rddata[2]<= sda;
40: rddata[1]<= sda;
41: rddata[0]<= sda;
endcase

always@(posedge clk or negedge reset_n)
if(!reset_n)
ack1 <= 1;
else if(i2c_din_pos && sck_cnt==11)
ack1 <= sda;

always@(posedge clk or negedge reset_n)
if(!reset_n)
ack2 <= 1;
else if(i2c_din_pos && sck_cnt==20 && rdnwr) // read ack2
ack2 <= sda;
else if(i2c_din_pos && sck_cnt==22 && !rdnwr) // write ack2
ack2 <= sda;

always@(posedge clk or negedge reset_n)
if(!reset_n)
ack3 <= 1;
else if(i2c_din_pos && sck_cnt==31 && !rdnwr) // write ack3
ack3 <= sda;
else if(i2c_din_pos && sck_cnt==33 && rdnwr) // read ack3
ack3 <= sda;

always@(posedge clk or negedge reset_n)
if(!reset_n)
sco <= 1;
else if(sck_cnt==2 && i2c_clk_low_pos) // write start
sco <= 0;
else if(sck_cnt==21 && i2c_clk_low_pos && rdnwr) // read start high
sco <= 1;
else if(sck_cnt==22 && i2c_clk_low_pos && rdnwr) // read start low
sco <= 0;
else if(sck_cnt==32 && i2c_clk_low_pos && !rdnwr) // write stop
sco <= 1;
else if(sck_cnt==43 && i2c_clk_low_pos) // read stop
sco <= 1;

always@(posedge clk or negedge reset_n)
if(!reset_n)
busy <= 0;
else if(rd|wr && !busy)
busy <= 1;
else if(sck_cnt==44)
busy <= 0;

endmole

我自己写的,希望能帮到你

D. 求推荐不错的DSP学习源码资源论坛(主要是F2812),另外,这几天傅里叶电子的hellodsp论坛网页怎么这么卡

hellodsp上是搜集的网上各种资源,有一定借鉴意义。但是想真正学好2812,还是去TI的网站上下载代码吧。TI做了大量的程序包,针对电机控制、电源等典型应用都有分类细致的源代码和示例电路。

另外,TI推出了一个在线软件平台controlSUITE,安装之后,只要你的计算机处于联网状态,就能动态访问和更新TI的DSP全系列产品的软件、硬件参考设计,就像用资源管理器访问自己的电脑一样。

E. app如何实现与dsp端口对接

具体步骤如下: 1,浏览器登陆网站首页,鼠标右键—查看网页源代码; 2,在打开的源代码中搜索查看generator,后面所跟内容为当前论坛版本号,搜索查看Content-Type,后面所跟内容为当前论坛编码类型。 3,登陆opencom后台,点击应用管理,选择您需要对接的APP应用; 4,点击网站对接菜单,下载插件对应论坛版本以及编码的插件。目前我们提供dz3.2、dz3.1和dz2.5的gbk和utf8两种类型,以及phpwind8.7版本;如需对接其它版本,可联系客服,选择好后接着点击提交。 5,点击下载,下载完后,请将解压后的文件cbhook上传到您论坛根目录下然后在浏览器中键入(你的论坛网址/cbhook/index.php进行安装) 6,在论坛上运行安装插件,只有全部权限为可写才能安装,如果某个权限为不可写,请注意修改(权限修改请联系服务器提供商或者咨询我司技术人员)。安装完毕后回到opencom管理后台进行后面的操作。 7,输入您网站域名,注意域名开头需要加“+您的论坛网址”;点击创建中央桥(请确保你的论坛程序安装在根目录下,如果放在特定文件夹中,请打开cbapi_config.php修改文件中论坛程序文件夹路径)。 8,,中央桥创建成功后进入频道对应设置环节,左边板块为程序抓取到的论坛板块;右边为所创建应用频道;在下拉框中选择您应用中所需要与论坛板块对接的频道,选好后点对接;也可以点新建频道对接,系统自动会在应用中生成一个与您论坛板块名字一样的应用频道(新生成的频道图标、介绍、权限设置等可在对接好后自行在频道设置中再修改);频道对应设置好后,点击开启同步,看到“启动中”绿色文字则为中央桥对接成功。

F. 我下载了个 VC++ MFC源代码 我现在想把里面的工程名 和所有的文件名都更改下

如果只改工程名,而不改文件的名称,那不太复杂;

将.DSP改名,然后用记事本(或其他文本编辑器)打开这个DSP文件,将里面除了后面文件名部分的所有替换。然后保存。

将.DSW改名,然后也用记事本打开它,然后将里面所有的替换,然后保存。

这样打开.DSW就可以了。
如果还想改文件名那就一个个文件去改 逐个去替换 哪里报错替换哪里!
相当的麻烦!!

G. DSP编译问题

先看CCS设置
再看链接库是否添加正确
还有CMD文件是否正确,有的实验箱用了两个CMD,头文件一个,用户代码一个。一般开发板一个。
实在不行就把源码发上来,包括你的包含文件,以及设置选项。
CCS编译器报错有很多种情况。

H. 家庭影院AV功放源码输出好还是DSP音质好

功放好。
同样的喇叭,用传统功放推出来的声音比DSP功放推的更自然、更醇厚耐听。DSP功放的声音底气就没有那么浑厚,相对声音也会单薄一些。
DSP功放的功率低于传统功放。音色调教比传统功放差,但声场比传统功放的宽广。一般来说,功放的功率要大于喇叭的功率。DSP功放可以通过电脑更好地管理功放,EQ的调教,让音响的声音更耐听更好听。

I. 给我一篇完整的dsp程序设计

随着DSP芯片功能的增强,已不再进行单纯的数字信号处理任务,而是作为一种MCU被广泛使用,控制板上各种资源,同时完成采集、计算、控制、通讯等任务。特别是当使用了TCP/IP或其它复杂通讯协议时,没有一个实时多任务操作系统是很难进行任务调度的。μC/OS-II作为一种源码公开的占先式实时多任务操作系统,总是执行处于就绪状态的优先级最高的任务,并支持Semaphore(信号量)、Mailbox(邮箱)、Message Queue(消息队列)等多种常用的进程间通信机制,是大多数高可靠嵌入式设备的首选。

2 开发环境简介
APCI5096是北京康拓工业电脑公司自行开发的一款DSP目标板,主要用于对模拟信号量的采样处理。该目标板以TMS320VC32为CPU,同时具有完备的输入/输出功能,可以实现30通道、16位、300KSPS的模拟输入。调试用编译器为TI公司的Code Composer ‘C3x-‘C4x,版本是4.10版。

3 移植过程
3.1 μC/OS-II系统结构
图1说明了μC/OS-II的软硬件体系结构。应用程序软件处于整个系统的顶层,只和μC/OS-II与处理器无关的代码以及μC/OS-II与应用相关的代码关联。这样保证了应用软件的可重用性。

μC/OS-II与处理器无关的代码提供了μC/OS-II的系统服务。利用这些API函数,应用程序可以进行内存管理、任务间的通信以及创建、删除任务等。μC/OS-II与应用相关的代码提供了对μC/OS-II本身的裁减,并可根据实际需要进行任务数、任务栈的大小等设置。

大部分的μC/OS-II代码是使用ANSI C语言书写的,因此μC/OS-II的可移植性较好。尽管如此,仍然需要使用C和汇编语言写一些处理器相关的代码。移植工作需要改写的是与处理器相关的代码,包括三个文件:OS_ CPU.H、OS_ CPU_ C�C、OS_ CPU_ A�ASM。重点是任务堆栈的初始化、任务切换时栈指针的调整。

3.2 OS_ CPU.H
在不同的处理器中有不同的字长,所以必须重新定义一系列数据类型以确保移植的正确性。在OS_ CPU�H文件中应完成:数据类型的重新定义、堆栈数据类型的定义、堆栈增长方向的定义、临界区开/关中断的方法、任务切换函数OS_TASK_SW的宏定义。

(1)数据类型的声明:在VC33中所有的整型数据(char、short、int、long)为相同的类型,用32位表示。浮点型数据(float、double)为相同类型,在VC33中用32位单精度浮点数表示。数据类型的重定义:
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U;
typedef signed char INT8S;
typedef float FP32;
typedef double FP64;

(2)VC33栈的数据宽度为32位,采用上面重定义过的数据类型进行定义,确保栈数据类型的一致性。栈的数据类型声明:
typedef INT32U OS_ STK;

(3)μC/OS-II访问代码的临界区时需要先禁止中断,并且在访问完毕后重新允许中断。μC/OS-II利用两个宏来禁止和允许中断,通过状态寄存器的中断使能位开关中断。
cregister unsigned int ST; /*声明CPU内部寄存器*/
#define OS_ ENTER_ CRITICAL() asm(“ANDN 2000H, ST "); /*清中断使能位*/
#define OS_ EXIT_ CRITICAL() asm(“OR 2000H, ST "); /*置中断使能位*/

3.3 OS_ CPU_ C.C
在OS_ CPU_ C.C文件中主要完成的是OSTaskStkInit()函数,其余五个函数可以不进行处理。OSTaskStkInit()函数完成任务栈的初始化,使得任务栈的结构看起来如同在任务执行过程中发生过一次中断并将所有寄存器保存到堆栈一样。不同的编译器在函数调用时会有不同的入栈方法,如:参数和返回地址入栈顺序、参数之间入栈的顺序、参数利用寄存器还是堆栈保存等。在具体实现时还需要根据编译器的要求进行调整。

CCS函数调用时堆栈规则为:先将参数从左往右入栈、然后是函数返回地址入栈。依照此规则设计任务栈初始结构如图2。VC33共有28个寄存器,程序中应将寄存器全部入栈,在OSTaskStkInit中实现:

{
OS_ STK *stk; /*定义栈的数据结构*/
opt=opt;
stk=(OS_ STK *)ptos; /*装入栈顶指针*/
*stk=(OS_ STK)pdata; /*参数入栈*/
*++stk=(OS_ STK)task; /*任务返回地址*/
*++stk=(OS_ STK)task; /*中断返回地址*/
*++stk=(OS_ STK)0x2000; /*状态寄存器,开中断*/ 其余CPU寄存器全部入栈,并初始化为0
}

3.4 OS_ CPU_ A.ASM
在OS_ CPU_ A�ASM文件中要求用户编写四个简单的汇编语言函数:OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR()。这四个函数具有完全相同的公共部分:寄存器入栈和寄存器出栈。只要按照上面设计好的栈结构进行就可以了。注意的是VC33的R0到R7是扩展精度寄存器,具有40位。在入栈和出栈时均需要用两句话完成,如下:
入栈: 出栈:
PUSH R0 POPF R0
PUSHF R0 POP R1

而OSIntCtxSw函数具有特殊部分,该函数用于从中断返回时进行任务切换,由于在调用_ OSIntCtxSw函数前已经发生了中断,中断服务程序已经将CPU寄存器保存到堆栈中了,所以此处不再进行寄存器保存。同时还要进行栈指针的调整,去掉堆栈中一些不需要的内容,然后再将寄存器全部出栈。由于该函数是μC/OS-II中唯一的与编译器相关的函数,所以在移植后必须利用多次任务切换检查栈指针是否正确调整。

3.5 时钟中断源初始化
μC/OS-II还要求用户提供一个时钟资源,用于实现时间延时和确认超时。根据APCI5096的硬件设置,需要在三个文件中进行时钟资源的设置。

(1)OS_ CPU_ A�ASM:
APCI5096中,已将VC33的定时器1用于测频通道,因此利用未被占用的定时器0产生定时中断。实现方法为在TINT0的中断向量入口处放一跳转指令,跳转到自己写的OSTickISR。
�sect “�TINT0_ vector"
TINT0 br _ OSTickISR

(2)CMD文件
将TINT0跳转到OSTickISR后,还应再指定TINT0的向量入口地址。APCI5096板上的VC33被设置为BootLoader方式,在该方式下TINT0的入口地址固定在0x809FC9。在CMD文件的SECTIONS段指定如下:
�TINT0_ vector:> 0x809FC9

(3)Main�C文件
μC/OS-II要求用户在OSStart()运行后,μC/OS-Ⅱ启动运行的第一个任务中初始化节拍中断。自己编写一个函数TimerInit(),并在第一个任务开始处调用该函数完成定时器0的初始化。函数中TIM0_ XXX代表的是定时器0的三个寄存器的地址,在完成对定时器0的设置后还要打开全局中断和时钟中断。

{
*TIM0_PRD= 0x7530; /*设置周期为1KHZ*/
*TIM0_CNT=0;
*TIM0_CTL=0x2C1; /*启动时钟*/
ST|=0x2000; /*打开中断*/
IE|=0x100; /*打开时钟中断*/
}

4 测试、编写驱动和应用程序
做完以上工作以后,就要测试移植是否成功。最初测试时,可以先运行操作系统本身,调度一些简单的任务和时钟节拍中断任务。主要测试系统本身的正确性,如果调试成功就可以在上面继续开发驱动程序和添加应用程序。

J. 下载的vc++源代码怎样使用

如果没有.dsw和dsp,只有makefile之类的东东,那么新建一个工程,把扩展名为cpp、h 和rc的文件加到工程中。然后查看所有cpp文件有没有包含"stdafx.h",如果没有,就在CPP首部加上"stdafx.h".
然后编译。

阅读全文

与小站dsp源码下载相关的资料

热点内容
plc教程pdf 浏览:665
pythonshell清屏命令 浏览:276
检测到加密狗注册服务器失败 浏览:201
解压后手机如何安装 浏览:518
极客学院app为什么下架 浏览:13
图片批量压缩绿色版 浏览:651
东北程序员帅哥 浏览:707
加密封条风噪小 浏览:974
安阳少儿编程市场 浏览:499
云服务器建设原理 浏览:259
javajunit4for 浏览:847
华为服务器如何进阵列卡配置 浏览:435
apache服务器ip地址访问 浏览:719
如何买到安卓手机预装软件 浏览:537
冤罪百度云不要压缩 浏览:88
苏州云存储服务器 浏览:177
解压收纳原声 浏览:387
java注册验证 浏览:377
火花app怎么上推荐 浏览:982
什么app能游戏投屏到电视上 浏览:456