❶ 各位大俠,ccs3.3安裝後左邊project選項,project菜單里都是灰色的,什麼原因呀
如果出現Project不能使用的情況,可能是C:\Program Files\Common Files\Texas Instruments ccs_Compdb.ini文件出錯。找一個安裝成功的,拷貝來替換掉你的,就ok了,要保證你們的安裝路徑是一致的。反正我是一路默認安裝的。
❷ 用CCS3.3編譯連接瑞泰dm642開發板的常式,總是編譯不成功 <Linking> undefined first referenced symbol i
這個錯誤提示有的符號未定義。把出現問題的符號在程序里搜索一遍,看是否未定義。ccs版本不同,頭文件定義的符號也不同。
先確保你的常式所在目錄不能包含中文字元。另外看看你的庫文件是否正確添加了。
❸ C++掃雷源代碼
這是字元界面的掃雷:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <windows.h>
#include <conio.h>
// defines
#define KEY_UP 0xE048
#define KEY_DOWN 0xE050
#define KEY_LEFT 0xE04B
#define KEY_RIGHT 0xE04D
#define KEY_ESC 0x001B
#define KEY_1 '1'
#define KEY_2 '2'
#define KEY_3 '3'
#define GAME_MAX_WIDTH 100
#define GAME_MAX_HEIGHT 100
// Strings Resource
#define STR_GAMETITLE "ArrowKey:MoveCursor Key1:Open \
Key2:Mark Key3:OpenNeighbors"
#define STR_GAMEWIN "Congratulations! You Win! Thank you for playing!\n"
#define STR_GAMEOVER "Game Over, thank you for playing!\n"
#define STR_GAMEEND "Presented by yzfy . Press ESC to exit\n"
//-------------------------------------------------------------
// Base class
class CConsoleWnd
{
public:
static int TextOut(const char*);
static int GotoXY(int, int);
static int CharOut(int, int, const int);
static int TextOut(int, int, const char*);
static int GetKey();
public:
};
//{{// class CConsoleWnd
//
// int CConsoleWnd::GetKey()
// Wait for standard input and return the KeyCode
//
int CConsoleWnd::GetKey()
{
int nkey=getch(),nk=0;
if(nkey>=128||nkey==0)nk=getch();
return nk>0?nkey*256+nk:nkey;
}
//
// int CConsoleWnd::GotoXY(int x, int y)
// Move cursor to (x,y)
// Only Console Application
//
int CConsoleWnd::GotoXY(int x, int y)
{
COORD cd;
cd.X = x;cd.Y = y;
return SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),cd);
}
//
// int CConsoleWnd::TextOut(const char* pstr)
// Output a string at current position
//
int CConsoleWnd::TextOut(const char* pstr)
{
for(;*pstr;++pstr)putchar(*pstr);
return 0;
}
//
// int CConsoleWnd::CharOut(int x, int y, const int pstr)
// Output a char at (x,y)
//
int CConsoleWnd::CharOut(int x, int y, const int pstr)
{
GotoXY(x, y);
return putchar(pstr);
}
//
// int CConsoleWnd::TextOut(const char* pstr)
// Output a string at (x,y)
//
int CConsoleWnd::TextOut(int x, int y, const char* pstr)
{
GotoXY(x, y);
return TextOut(pstr);
}
//}}
//-------------------------------------------------------------
//Application class
class CSLGame:public CConsoleWnd
{
private:
private:
int curX,curY;
int poolWidth,poolHeight;
int bm_gamepool[GAME_MAX_HEIGHT+2][GAME_MAX_WIDTH+2];
public:
CSLGame():curX(0),curY(0){poolWidth=poolHeight=0;}
int InitPool(int, int, int);
int MoveCursor(){return CConsoleWnd::GotoXY(curX, curY);}
int DrawPool(int);
int WaitMessage();
int GetShowNum(int, int);
int TryOpen(int, int);
private:
int DFSShowNum(int, int);
private:
const static int GMARK_BOOM;
const static int GMARK_EMPTY;
const static int GMARK_MARK;
};
const int CSLGame::GMARK_BOOM = 0x10;
const int CSLGame::GMARK_EMPTY= 0x100;
const int CSLGame::GMARK_MARK = 0x200;
//{{// class CSLGame:public CConsoleWnd
//
// int CSLGame::InitPool(int Width, int Height, int nBoom)
// Initialize the game pool.
// If Width*Height <= nBoom, or nBoom<=0,
// or Width and Height exceed limit , then return 1
// otherwise return 0
//
int CSLGame::InitPool(int Width, int Height, int nBoom)
{
poolWidth = Width; poolHeight = Height;
if(nBoom<=0 || nBoom>=Width*Height
|| Width <=0 || Width >GAME_MAX_WIDTH
|| Height<=0 || Height>GAME_MAX_HEIGHT
){
return 1;
}
// zero memory
for(int y=0; y<=Height+1; ++y)
{
for(int x=0; x<=Width+1; ++x)
{
bm_gamepool[y][x]=0;
}
}
// init seed
srand(time(NULL));
// init Booms
while(nBoom)
{
int x = rand()%Width + 1, y = rand()%Height + 1;
if(bm_gamepool[y][x]==0)
{
bm_gamepool[y][x] = GMARK_BOOM;
--nBoom;
}
}
// init cursor position
curX = curY = 1;
MoveCursor();
return 0;
}
//
// int CSLGame::DrawPool(int bDrawBoom = 0)
// Draw game pool to Console window
//
int CSLGame::DrawPool(int bDrawBoom = 0)
{
for(int y=1;y<=poolHeight;++y)
{
CConsoleWnd::GotoXY(1, y);
for(int x=1;x<=poolWidth;++x)
{
if(bm_gamepool[y][x]==0)
{
putchar('.');
}
else if(bm_gamepool[y][x]==GMARK_EMPTY)
{
putchar(' ');
}
else if(bm_gamepool[y][x]>0 && bm_gamepool[y][x]<=8)
{
putchar('0'+bm_gamepool[y][x]);
}
else if(bDrawBoom==0 && (bm_gamepool[y][x] & GMARK_MARK))
{
putchar('#');
}
else if(bm_gamepool[y][x] & GMARK_BOOM)
{
if(bDrawBoom)
putchar('*');
else
putchar('.');
}
}
}
return 0;
}
//
// int CSLGame::GetShowNum(int x, int y)
// return ShowNum at (x, y)
//
int CSLGame::GetShowNum(int x, int y)
{
int nCount = 0;
for(int Y=-1;Y<=1;++Y)
for(int X=-1;X<=1;++X)
{
if(bm_gamepool[y+Y][x+X] & GMARK_BOOM)++nCount;
}
return nCount;
}
//
// int CSLGame::TryOpen(int x, int y)
// Try open (x, y) and show the number
// If there is a boom, then return EOF
//
int CSLGame::TryOpen(int x, int y)
{
int nRT = 0;
if(bm_gamepool[y][x] & GMARK_BOOM)
{
nRT = EOF;
}
else
{
int nCount = GetShowNum(x,y);
if(nCount==0)
{
DFSShowNum(x, y);
}
else bm_gamepool[y][x] = nCount;
}
return nRT;
}
//
// int CSLGame::DFSShowNum(int x, int y)
// Private function, no comment
//
int CSLGame::DFSShowNum(int x, int y)
{
if((0<x && x<=poolWidth) &&
(0<y && y<=poolHeight) &&
(bm_gamepool[y][x]==0))
{
int nCount = GetShowNum(x, y);
if(nCount==0)
{
bm_gamepool[y][x] = GMARK_EMPTY;
for(int Y=-1;Y<=1;++Y)
for(int X=-1;X<=1;++X)
{
DFSShowNum(x+X,y+Y);
}
}
else bm_gamepool[y][x] = nCount;
}
return 0;
}
//
// int CSLGame::WaitMessage()
// Game loop, wait and process an input message
// return: 0: not end; 1: Win; otherwise: Lose
//
int CSLGame::WaitMessage()
{
int nKey = CConsoleWnd::GetKey();
int nRT = 0, nArrow = 0;
switch (nKey)
{
case KEY_UP:
{
if(curY>1)--curY;
nArrow=1;
}break;
case KEY_DOWN:
{
if(curY<poolHeight)++curY;
nArrow=1;
}break;
case KEY_LEFT:
{
if(curX>1)--curX;
nArrow=1;
}break;
case KEY_RIGHT:
{
if(curX<poolWidth)++curX;
nArrow=1;
}break;
case KEY_1:
{
nRT = TryOpen(curX, curY);
}break;
case KEY_2:
{
if((bm_gamepool[curY][curX]
& ~(GMARK_MARK|GMARK_BOOM))==0)
{
bm_gamepool[curY][curX] ^= GMARK_MARK;
}
}break;
case KEY_3:
{
if(bm_gamepool[curY][curX] & 0xF)
{
int nb = bm_gamepool[curY][curX] & 0xF;
for(int y=-1;y<=1;++y)
for(int x=-1;x<=1;++x)
{
if(bm_gamepool[curY+y][curX+x] & GMARK_MARK)
--nb;
}
if(nb==0)
{
for(int y=-1;y<=1;++y)
for(int x=-1;x<=1;++x)
{
if((bm_gamepool[curY+y][curX+x]
& (0xF|GMARK_MARK)) == 0)
{
nRT |= TryOpen(curX+x, curY+y);
}
}
}
}
}break;
case KEY_ESC:
{
nRT = EOF;
}break;
}
if(nKey == KEY_1 || nKey == KEY_3)
{
int y=1;
for(;y<=poolHeight;++y)
{
int x=1;
for(;x<=poolWidth; ++x)
{
if(bm_gamepool[y][x]==0)break;
}
if(x<=poolWidth) break;
}
if(! (y<=poolHeight))
{
nRT = 1;
}
}
if(nArrow==0)
{
DrawPool();
}
MoveCursor();
return nRT;
}
//}}
//-------------------------------------------------------------
//{{
//
// main function
//
int main(void)
{
int x=50, y=20, b=100,n; // define width & height & n_booms
CSLGame slGame;
// Init Game
{
CConsoleWnd::GotoXY(0,0);
CConsoleWnd::TextOut(STR_GAMETITLE);
slGame.InitPool(x,y,b);
slGame.DrawPool();
slGame.MoveCursor();
}
while((n=slGame.WaitMessage())==0) // Game Message Loop
;
// End of the Game
{
slGame.DrawPool(1);
CConsoleWnd::TextOut("\n");
if(n==1)
{
CConsoleWnd::TextOut(STR_GAMEWIN);
}
else
{
CConsoleWnd::TextOut(STR_GAMEOVER);
}
CConsoleWnd::TextOut(STR_GAMEEND);
}
while(CConsoleWnd::GetKey()!=KEY_ESC)
;
return 0;
}
//}}
❹ CCS3.3編譯提示cmd中提示找不到*.OBJ文件,可是debug裡面明明有obj文件啊
系統找不到.obj文件,.obj文件在工程目錄下的DEBUG文件夾下,所以需要在.cmd命令文件中將.obj的路徑添加進去,具體就是「 DEBUG/Notes.obj」。網上找了遍,沒啥對的答案,希望對後來人有幫助
❺ CCS3.3編譯時提示無法創建.out文件,是怎麼回事
自己找到問題了! 庫路徑的問題!在build option -linker在CCS2.2下的路徑是 c:\ti\c6000\bios\lib\;c:\ti\c6000\cgtools\lib而在CCS3.3下的路徑是 C:\CCStudio_v3.3\C6000\cgtools\lib;C:\CCStudio_v3.3\C6000\csl\lib更改後,編譯正確了!!
❻ 緊急求助~~c語言程序設計~謝謝
這么大型,連代碼都估計要2000多行了,
即使能編出來,說不定你的問題已過期,
即使不過期,也不一定能顯示2000多行,
2000多行也太多了吧。
叫別人完成你的課程設計,你全部分給我我都不要。
既然有這題目,是否該考慮自己做做呢,如果這些也做不到,我想你三年白學了。
❼ 編譯錯誤為缺少函數或變數怎麼解決
不知道你用的是什麼語言,應該是vb的一種,分析如下:
1."歡迎進入 Hide"這句話前是否有單引號注釋?
2.text1,text2控制項是否存在?
3.「If Text1.Text = 123 + Text2.Text = 123 Then」這句話中的判斷語句看不懂,至少去掉一個等號的內容
4.「Form.csl」是什麼意思,是自定義的函數嗎?如沒自定義,應該是不能用的東東。
❽ 用ccs編譯文件後出現如下錯誤:
而是樓書的庫有問題,「member
'csl.obj'
has
incompatible
byte
ordering」,估計是大端小端的問題,可能是該庫在編譯的時候所選用的便宜參數和你的project環境不同,建議樓主重新編譯該該庫,然後替換原來的。
❾ 用51單片機處理音頻信號
介紹基於DSP和FPGA的專業級音頻處理開發板資料
介紹基於DSP和FPGA的專業級音頻處理開發板資料
採用TMS320C5409和Cyclone EP1C3T144C8 FPGA、作為主處理器、協處理器。採用24bit高精度音頻專用AD/DA轉換晶元,特別適合應用於電台、錄音室等專業級音頻處理設備開發。
該開發板是面向專業級音頻開發而設計的硬體平台,主要集成了ALTERA的EP1C3,STC的MCU和cirrus公司的高保真度音頻AD/DA,音頻經AD/DA轉換後的信噪比達到90dB,完全達到專業音頻處理的水平。
硬體資源:
◆TMS320VC5409-100:32K字片內RAM,3個McBSP口,8bit的HPI口(支持
16bit非復用模式),支持外部匯流排到內部存儲器的DMA操作,相對5402,5409的資
源要豐富一些,特別在多位高速音頻信號處理中,外部DMA特性能使處理速度提高
很多.
◆EP1C3T144C8: 2910個LE,內置13個獨立的128X36bit的RAM塊,104個可用
I/O口,內置PLL. 大量的管腳和內置RAM(可做各種FIFO)為擴展專業視頻介面提
供了足夠的硬體資源.
◆SST39VF160/1601:2M Bytes flash晶元(1M*16bit),能容納大量程序。 提供從該flash晶元Bootload DSP程序的例子代碼。
◆Bootload SPI EEPROM CSI25256:32K*8bit,支持在線下載DSP程序,不須通過JTAG介面;
◆Sram:ISSI的IS61LV6416;64K*16bit;
◆點陣LCD介面:支持128*64的點陣屏;
◆128*64屏(綠底黑字,藍底白字):61202或K0107晶元組;該屏為用戶另選配
的器件.
◆音頻AD/DA:Crystal公司的專業級音頻AD/DA轉換器,最高支持精度為24bit寬,
采樣率為96K.綜合信噪比超過90db.
◆STC89C58RD+:32K位元組的單片機,為DSP提供良好和低價的用戶介面,同時也為
DSP做高速信號處理節省了寶貴的時間,使DSP不必忙於做用戶介面的工作.
◆預留HPI口,可方便與上位機通訊。
軟體資源:
DSP定時中斷的匯編程序和C語言程序;
McBSP程序;
16位並行介面的Bootload程序和實現過程;
SPI介面通過McBSP2介面Bootload的程序和過程,McBSP0配置程序;
音頻頻譜分析的演示程序:音頻信號經FFT實時轉換後送到LCD顯示的目標文件;
多段均衡器設計過程的介紹;
CSL庫應用的介紹;
應用CSL庫進行DMA配置的介紹;
單片機相應的原代碼,包括在線下載串口bootload程序的代碼;
FPGA的原碼;
該音頻信號處理套件以高速DSP為核心信號處理器,FPGA為信號處理的協處理器,處理包括視音頻時序對齊和部分硬解碼過程,MCU為用戶介面協處理器,實現LCD顯示和鍵盤操作,該開發板是為專業音頻信號處理度身訂做的,同時它可以為靜態圖象處理提供廉價的開發平台.
4層PCB板設計,具有更強的抗干擾性和進一步降低了系統的雜訊.
基於DSP和FPGA的專業音頻處理開發板的特點:
1、 該音頻處理平台的最高處理能力為96kHz,24 bits,綜合信噪比達到90dB,而音頻CD的極限值為44.1 kHz,16 bits,該平台的的音頻處理質量要遠遠優於CD音頻,主要用於專業音頻如電台,電視台等要求較高的場合上的設備開發。
2、 使用cirrus公司性價比較高的音頻處理晶元,差分輸入輸出,有很高的共模抑制能力,AD通道帶片外運放前置驅動,DA通道帶片外運放後級驅動和有源濾波,大大提高了系統的信噪比和驅動能力。
3、 該開發板源於已成功開發且量產的專業化音頻處理設備,我們結合實際的開發流程,使用DSP-FPGA-MCU的設計框架,做到了用DSP做演算法處理,FPGA做邏輯和時序對齊處理,MCU做用戶介面。這種架構能很好的發揮DSP的高速處理性能,而不需耗費資源去管理介面,特別在跟專業視頻AD/DA如SAA7114和SAA7121介面的時候,FPGA做埠操作和時序對齊就遠遠勝於DSP了,用戶利用該系統做視頻處理時,只需在FPGA中提取出有效的視頻數據和開通PING和PONG兩級FIFO,然後在DSP中利用DMA操作將數據PING-PONG進DSP就可以了。而EP1C3為我們提供了足夠的RAM做緩沖FIFO,該功能為實際開發提供了很大方便,我們結合實際對DSP,FPGA, MCU管腳做了適當的擴充。用戶可以方便地擴展自己的PCB板。
4、 該開發板提供了兩種bootload方式,16bit並行flash和8bit串列EEPROM方式,提供整個bootload過程的源代碼和上位機軟體。串列EEPROM bootload方式提供了在線下載功能,通過計算機串口直接實現了DSP 16進制文件的燒寫,省卻了HPI介面bootload時對MCU重新編程的繁瑣操作,同時將HPI口預留給用戶使用。
5、 板上預留了點陣LCD介面,同時提供縱模LCD 12864的MCU驅動程序。音頻處理類的產品一般需要一個比較大的LCD顯示處理前後的音頻數據信息,如輸入音頻的幅度波形,頻譜圖,處理後輸出的幅度波形和頻譜圖等。在做均衡器處理時,通過點陣LCD,就能描出用戶需要的各頻段的增益曲線,這在產品開發中是非常有用的。
6、 該開發板定位在專業音頻處理上,跟一般的DSP學習板有較大的區別,它提供了豐富的片級處理資源。為用戶提供一個良好的二次開發平台,特別適合研究生和公司做音頻或靜態圖像處理項目時使用。
FAQ:
1、該開發套件提供多少東西?
核心板+開關電源+音頻線+串口線+開發資料光碟
2、5409相對於5402性能上有哪些改進和不同?
5409有32K*16bit片內RAM,較5402大1倍,5409有3個McBSP口,較5402多1個McBSP2口,其中McBSP2支持串列EEPROM bootload。支持非復用模式的16bit HPI介面,5402不支持。支持外部匯流排到內部RAM的DMA傳輸,5402不支持。但5409隻有1個時鍾Timer0,5402有2個時鍾。
3、該平台做高速音頻處理的依據是什麼?
我們在該平台上開發過多段音頻均衡器(基於IIR濾波器)和音頻頻譜分析及單峰干擾檢測消除等項目,均取得較好的效果,只要在軟體架構上做適當的配置,如利用FPGA和DSP結合做DMA數據傳輸通道,將DSP從數據傳輸中解放出來,同時關鍵程序使用匯編和C結合的方式編程,就能獲得較高的處理性能。
4、使用串口bootload和使用並口flashrom bootload有什麼優缺點?
我們提供2種方式的bootload方式的目的是讓用戶有更多的選擇,一般在串口資源足夠的話就用串口bootload方式,但5409有個問題是它只支持32k*8bit的串口EEPROM,因而當程序大於32K時就考慮用並口方式了。
5、能不能在FPGA晶元EP1C3中植入NIOS系統?
可以的,但是因為沒有對EP1C3做 flashrom和sdram擴展,如果單純在EPCS1中定製程序的話,程序容量就非常有限了。
詳情請登陸 www.21control.com
=================================================================
這個是51單片機實驗及實踐教程,從入門到精通,附有匯編,C源程序
http://www.51kaifa.com/bbs/viewthread.php?tid=154
注冊一下就可以下載