freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于32位嵌入式系統(tǒng)spce3200數(shù)碼相機(jī)的研究設(shè)計(jì)畢業(yè)論文-資料下載頁(yè)

2025-06-28 00:46本頁(yè)面
  

【正文】 Mp3音頻文件的播放,其次是Sp4(這是凌陽(yáng)公司定制的視頻格式)文件播放,電視輸出的調(diào)試,圖片瀏覽,音樂(lè)相冊(cè)功能,最后完成的拍照程序。程序中出現(xiàn)的圖形,以及菜單畫(huà)面全部采用Adobe公司PhotoShop圖形軟件進(jìn)行繪制。SPCE3200嵌入式開(kāi)發(fā)系統(tǒng)采用S+core IDE開(kāi)發(fā)環(huán)境,開(kāi)發(fā)環(huán)境是由凌陽(yáng)公司編寫(xiě)的,在此平臺(tái)上編寫(xiě)程序和調(diào)試程序都較為靈活。凌陽(yáng)公司提供給程序編寫(xiě)者較為全面的硬件驅(qū)動(dòng)支持,這些驅(qū)動(dòng)包括了TFT驅(qū)動(dòng)、觸摸板驅(qū)動(dòng)、文件系統(tǒng)、MPEG編解碼驅(qū)動(dòng)等等。SPCE3200嵌入式系統(tǒng)程序的編寫(xiě)使用了凌陽(yáng)公司的Ufat文件系統(tǒng)和Mp3解碼兩個(gè)庫(kù)文件。使用硬件上的MPEG4編解碼器、ADC、DAC、定時(shí)器、顯示控制和電視控制器等等硬件設(shè)備。定時(shí)器3,4,5主要分配給了照片顯示更新,SP4解碼和Mp3歌詞程序使用。程序編寫(xiě)從第三個(gè)開(kāi)始使用,其余的提供將來(lái)升級(jí)和增加功能使用。對(duì)其他部分程序和硬件設(shè)備也同樣做了相應(yīng)處理,增加了系統(tǒng)可升級(jí)性。 程序啟動(dòng)會(huì)自動(dòng)尋找SD卡,如果卡不存在會(huì)提示插入SD卡。卡根目錄上使用三個(gè)目錄存放數(shù)據(jù),分別保存音樂(lè),視頻和圖片,音樂(lè)相冊(cè)的背景音樂(lè)和圖片保存在一個(gè)文件夾中,他們分別為MpSpCamera。 程序針對(duì)mp3設(shè)計(jì)了兩個(gè)標(biāo)志:一個(gè)是Ufat_Read_Flag,用于控制背景音樂(lè)播放的中斷程序,它防止Mp3播放時(shí)導(dǎo)致圖片讀取不正常等現(xiàn)象;另一個(gè)是Mp3_Lib_Sta用于切換Mp3解碼庫(kù)選擇解碼Mp3音樂(lè)還是解碼Sp4視頻。 eCos 源碼中的 I/O包包含了多種設(shè)備類型的驅(qū)動(dòng)程序,這些設(shè)備驅(qū)動(dòng)程序以組件的形式出現(xiàn)在 I/O包內(nèi)。設(shè)備驅(qū)動(dòng)程序組件也可以像其他所有組件一樣,系統(tǒng)可以根據(jù)實(shí)際需要對(duì)它們進(jìn)行配置。開(kāi)發(fā)人員也可以設(shè)計(jì)自己的設(shè)備驅(qū)動(dòng)程序,并將其加入到系統(tǒng)中來(lái)。 驅(qū)動(dòng)程序模塊支持分層結(jié)構(gòu),一個(gè)設(shè)備可以是另一個(gè)設(shè)備的上層設(shè)備。處于上層的設(shè)備可以靈活地增加一些底層設(shè)備沒(méi)有提供的一些功能和特性。例如,TTY設(shè)備建立在簡(jiǎn)單串行設(shè)備的上層,它提供的行緩沖和行編輯功能是簡(jiǎn)單串行設(shè)備所不具備的。 eCos 提供了一些驅(qū)動(dòng)程序用戶 API,應(yīng)用程序使用這些函數(shù)可以對(duì)設(shè)備進(jìn)行操作這些操作包括對(duì)設(shè)備進(jìn)行配置、獲取配置信息、對(duì)設(shè)備進(jìn)行數(shù)據(jù)的讀寫(xiě)等。 設(shè)備驅(qū)動(dòng)程序必須采用設(shè)備句柄(handle)對(duì)其進(jìn)行訪問(wèn)。系統(tǒng)中的每一個(gè)設(shè)備都有一個(gè)惟一的名字,cyg_io_lookup()函數(shù)用于將該名字映射到設(shè)備句柄。該函數(shù)還可以在啟動(dòng)初期用于對(duì)設(shè)備進(jìn)行初始化操作。設(shè)備驅(qū)動(dòng)程序所提供的基本功能包括對(duì)設(shè)備進(jìn)行數(shù)據(jù)讀寫(xiě)操作些外它還提供了其他一些函數(shù)對(duì)具體設(shè)備以及驅(qū)動(dòng)程序的狀態(tài)進(jìn)行控制和處理。 驅(qū)動(dòng)程序用戶 API 函數(shù)的參數(shù)均采用指針的形式,可以有效地實(shí)現(xiàn)與驅(qū)動(dòng)程序之間的信息傳遞。最明顯的例子是它的讀寫(xiě)函數(shù)中對(duì)數(shù)據(jù)長(zhǎng)度參數(shù) length 的傳遞在調(diào)用讀函數(shù)和寫(xiě)函數(shù)時(shí),length 包含了將要傳送的數(shù)據(jù)長(zhǎng)度,函數(shù)返回時(shí) length包含了實(shí)際傳送的數(shù)據(jù)長(zhǎng)度。 除了 cyg_io_lookup()函數(shù)外,所有的驅(qū)動(dòng)程序用戶 API 函數(shù)都要使用設(shè)備句柄 handle。所有函數(shù)都將返回一個(gè)具有 Cyg_ErrNo 類型的值。如果有錯(cuò)誤發(fā)生,返回的值將是負(fù)值,并具體指明錯(cuò)誤代碼。根據(jù)錯(cuò)誤可以在頭文件 cyg/error/ 中查看相應(yīng)的錯(cuò)誤。如果函數(shù)執(zhí)行下正常,返回值為 ENOERR,表示沒(méi)有錯(cuò)誤。 圖像采集程序就是我們這個(gè)課題的核心程序,主要用來(lái)拍攝照片并將照片存儲(chǔ)在SD卡當(dāng)中。拍攝照片在硬件上使用了CSI接口、IIC總線、CMOS圖像傳感器和MPEG編解碼器,當(dāng)然這也離不開(kāi)對(duì)應(yīng)的硬件驅(qū)動(dòng)的支持。攝像頭的信號(hào)通過(guò)CSI接口送入CPU,CPU通過(guò)IIC控制CMOS圖像傳感器工作模式,如顏色空間,分辨率等。程序設(shè)計(jì)要克服瀏覽使用QVGA(大小:320240)模式,而保存使用VGA(大小:640480)模式的困難。因此預(yù)覽時(shí)將CMOS圖像傳感器和CSI接口的輸出設(shè)置成QVGA,RGB模式,將它獲取的數(shù)據(jù)緩沖區(qū)指向顯示緩沖區(qū),得到預(yù)覽畫(huà)面。當(dāng)需要保存照片時(shí),將CMOS圖像傳感器的輸出設(shè)置編碼器所需要的VGA,YUV模式,將得到數(shù)據(jù)指向新的緩沖區(qū),延時(shí)等待緩沖區(qū)填滿并對(duì)這個(gè)新緩沖區(qū)內(nèi)的數(shù)據(jù)進(jìn)行JPEG編碼。()函數(shù)完成,得到的數(shù)據(jù)放到前兩次均未用到的緩沖區(qū),調(diào)用UFAT文件系統(tǒng)將文件頭和數(shù)據(jù)寫(xiě)入一個(gè)擴(kuò)展名為JPG的文件中完成圖像保存。圖像保存采用序號(hào)制,如果不存則創(chuàng)建這個(gè)文件,照片的記錄數(shù)歸零。具體實(shí)施過(guò)程如下:MPEG只能對(duì)YUV數(shù)據(jù)進(jìn)行編碼,所以在拍照時(shí)CSI要設(shè)置為:YUV模式,而通常情況 下,TFT工作在RGB565模式下,所以在拍照程序中,拍照前的預(yù)覽階段,要把CSI也設(shè)置為RGB565模式,而在拍照那一該要將CSI切換到Y(jié)UV模式。 同時(shí)我們的LCD為320*240(QVGA)分辨率的,而題目要求拍出640*480(VGA)的照片,所以在拍照瞬間我們讓CSI工作在VGA模式下。 拍照程序?qū)崿F(xiàn)方法: void Photo(...)//拍照函數(shù) { .... CSI_Init(QVGA, RGB565IN, RGB565OUT, TFT_BUFFER0_SA, TFT_BUFFER0_SA, TFT_BUFFER0_SA); //先將CSI設(shè)為 QVGA, RGB565模式,以在LCD上顯示,進(jìn)入預(yù)覽狀態(tài)。 .... if(拍照命令) { CSI_Init(VGA, YUVIN, YUVOUT, TFT_BUFFER1_SA, TFT_BUFFER1_SA, TFT_BUFFER1_SA)。 //切換CSI為VGA, YUV模式,并改變其緩沖區(qū)地址為T(mén)FT_BUFFER1_SA, ,不讓其在LCD上顯示 。CSI_Pause()。 //CSI暫停 camera_jpg(TFT_BUFFER1_SA, 0xa0900000)。 // 對(duì)TFT_BUFFER1_SA地址開(kāi)始的的數(shù)據(jù)進(jìn)行編碼并保存為照片CSI_Init(QVGA, RGB565IN, RGB565OUT, TFT_BUFFER0_SA。 //拍照完成后,CSI返回QVGA,RGB565模式,以再次返回預(yù)覽狀態(tài). TFT_BUFFER0_SA, TFT_BUFFER0_SA)。 } .... } 這樣即可實(shí)現(xiàn)拍照功能。 本節(jié)主要介紹多媒體播放程序的設(shè)計(jì)思想和過(guò)程。多媒體播放程序是我們來(lái)播放MP3文件,SP4文件以及顯示圖片核心[20]。我們需要判斷按鍵是否按下,并等待按鍵抬起得到按鍵的鍵值。這里,需要使用select函數(shù)對(duì)底層設(shè)備的動(dòng)作進(jìn)行監(jiān)控。select函數(shù)是eCos提供的與Linux兼容的接口函數(shù)。它可以完成對(duì)底層設(shè)備某種操作方法的等待[21],比如,可以等待鍵盤(pán)設(shè)備有數(shù)據(jù)可讀,并可以設(shè)置超時(shí)等待時(shí)間,從而可以在底層設(shè)備發(fā)生動(dòng)作時(shí)及時(shí)作出響應(yīng),并可以避免當(dāng)?shù)讓記](méi)有可用資源時(shí)造成應(yīng)用程序阻塞。: 按鍵掃描程序流程圖 MPEG4 解碼子函數(shù) 在對(duì)視頻進(jìn)行解碼時(shí),將使用MPEG4 硬件解碼器對(duì)*.sp4 文件中的視頻圖像數(shù)據(jù)進(jìn)行解碼,凌陽(yáng)科技開(kāi)發(fā)的*.sp4 文件的組織結(jié)構(gòu)如圖 : 在 MPEG4 解碼程序中,需要獲取*.sp4 中的每一幀視頻數(shù)據(jù)并填入 MPEG4硬件解碼單元進(jìn)行解碼,然后,使用 BLNDMA將解碼之后的圖像傳輸至 LCD的顯示緩沖區(qū)。 SP4文件結(jié)構(gòu)圖 MP3 播放子函數(shù) eCos為SPCE3200 平臺(tái)提供了一個(gè)用于對(duì)Mp3 文件進(jìn)行解碼的組件,利用這個(gè)解碼組件應(yīng)用程序可以非常方便的播放Mp3 音頻文件。Mp3解碼組件與其他組件的關(guān)系如圖 ,應(yīng)用程序不能使用Mp3 解碼器直接對(duì)音頻碼流進(jìn)行解碼,而需要通過(guò)File IO組件訪問(wèn)文件系統(tǒng),以便讓其讀取存儲(chǔ)介質(zhì)(如SD卡、ROM等)上的文件進(jìn)行播放[36]。 MP3解碼器與其他組件的關(guān)系MP3 解碼器組件為應(yīng)用程序提供了一套完整的 API,這些 API 的函數(shù)原型和功能描述如下[10]: 函數(shù)原型:int MP3_Init(void);功 能:初始化 MP3 解碼器;返 回 值:操作成功返回 0,否則返回1;頭 文 件:使用本函數(shù)需要包含;說(shuō) 明:該函數(shù)必須在使用其他 MP3 解碼器 API 函數(shù)之前被調(diào)用,并且該函數(shù)通常只被調(diào)用一次。 函數(shù)原型:int MP3_Configure(unsigned long cmd, unsigned long para); 功 能:配置 MP3編碼器;返 回 值:操作成功返回 0,否則返回1;頭 文 件:使用本函數(shù)需要包含;函數(shù)原型:int MP3_Play(char *mp3file, void *MP3_End_Callback, mp3_callback *PlayCallback);功 能:播放 MP3文件; 參 數(shù):mp3file : 待播放的 MP3 文件路徑; MP3_End_Callback : 播放結(jié)束回調(diào)函數(shù) ;PlayCallback : 數(shù)據(jù)流操作函數(shù); 返 回 值:操作成功返回 0,否則返回1 ;頭 文 件:使用本函數(shù)需要包含;說(shuō) 明:當(dāng) MP3 解碼器完成對(duì) mp3file 的播放時(shí),將調(diào)用 MP3_End_Callback 函數(shù),用戶可以在;該函數(shù)中完成播放結(jié)束時(shí)需要處理的工作。PlayCallback 是一個(gè)指向 mp3_callback 結(jié)構(gòu)體。mp3_callback 結(jié)構(gòu)體的定義如下: typedef struct {int (*open)(const char *mp3file, int oflag, ...)。 ssize_t (*read)(int fd, void *Buf, size_t Size)。 off_t (*lseek)(int fd, off_t offset, int whence)。int (*close)(int fd)。 } mp3_callback。 該結(jié)構(gòu)體的作用是為解碼器提供一組用于讀取 MP3 音頻數(shù)據(jù)流的函數(shù)。這些函數(shù)的形式、參數(shù)以及完成的作用與文件系統(tǒng)類似,如 open 函數(shù)被解碼器用來(lái)啟動(dòng)數(shù)據(jù)流的讀取操作,類似于文件系統(tǒng)中打開(kāi)件的操作;read 函數(shù)被解碼器用來(lái)從數(shù)據(jù)流中順序讀取一定量的數(shù)據(jù),類似于從文件中讀取數(shù)據(jù)的操作;lseek 函數(shù)被解碼器用來(lái)在數(shù)據(jù)流中進(jìn)行定位,類似于對(duì)文件進(jìn)行隨機(jī)定位;close函數(shù)被解碼器用來(lái)結(jié)束數(shù)據(jù)流的讀取,類似于關(guān)閉文件的操作。 在一般應(yīng)用中,MP3 數(shù)據(jù)以標(biāo)準(zhǔn) MP3 文件的形式被儲(chǔ)存在存儲(chǔ)介質(zhì)上,此時(shí),這組數(shù)據(jù)流操作函數(shù)需要完成的功能等同于文件系統(tǒng)的對(duì)應(yīng)函數(shù)的功能,用戶可以在調(diào)用 MP3_Play()函數(shù)時(shí)將 PlayCallback 參數(shù)置為 NULL,表示使解碼器直接使用文件系統(tǒng)來(lái)讀取數(shù)據(jù)流。在某些特殊應(yīng)用中,用戶可以自定義這些函數(shù),以便完成對(duì)非標(biāo)準(zhǔn) MP3 文件形式的數(shù)據(jù)流的存取。 函數(shù)原型:mp3_info_t *Get_MP3_Info(mp3_info_t *pMP3Info); 功 能:獲取由 Play_MP3()函數(shù)播放的 MP3文件的信息;參 數(shù):pMP3Info: 用于保存 MP3 文件信息的結(jié)構(gòu)體指針;返 回 值:操作成功返回保存 MP3 文件信息的結(jié)構(gòu)體的地址,否則返回 NULL;頭 文 件:使用本函數(shù)需要包含; 函數(shù)原型:int Stop_MP3(); 功 能:停止播放; 參 數(shù):無(wú) ;返 回 值:操作成功返回 0,否則返回1;頭 文 件:使用本函數(shù)需要包含; 函數(shù)原型:int Pause_MP3(void); 功 能:暫停播放 ;參 數(shù):無(wú) 返 回 值:操作成功返回 0,否則返回1 ;頭 文 件:使用本函數(shù)需要包含 ;函數(shù)原型:int Resume_MP3(void); 功 能:繼續(xù)播放 ;參 數(shù):無(wú) ;返 回 值:操作成功返回 0,否則返回1; 頭 文 件:使用本函數(shù)需要包含; 函數(shù)原型:int SpeedUp_MP3(); 功 能:加速播放 ;參 數(shù):無(wú) ;返 回 值:操作成功返回 0,否則返回1;頭 文 件:使用本函數(shù)需要包含 ;函數(shù)原型:int SpeedDown_MP3();功 能:減速播放;參 數(shù):無(wú);返 回 值:操作成功返回 0,否則返回1;頭 文 件:使用本函數(shù)需要包含 ;函數(shù)原型:void MP3_Set_Volume_Boundary(unsigned int Volume_Boundary); 功 能:設(shè)置音量可調(diào)范圍 ;參 數(shù):Volume_Boundary : 音量可調(diào)范圍的上限;返 回 值:無(wú);頭 文 件:使用本函數(shù)需要包含;說(shuō) 明:該函數(shù)可以將音量的可調(diào)范圍設(shè)置為:0~2^Volume_Boundary。 例 MP3_Set_Volume_Boundary(4)后,音量的可調(diào)范圍將變?yōu)椋?~16。系統(tǒng)默認(rèn)值為 4 函數(shù)原型:void MP3_Set_Volume_Offset(unsigned int Volume_Offset); 功 能:設(shè)置音量;參 數(shù):Volume_Offset : 音量等級(jí)(取值范圍:0~2^Volume_Boundary);返 回 值:無(wú) ;頭 文 件:使用本函數(shù)需要包含 ;說(shuō) 明:系統(tǒng)默認(rèn)值為 16(最大音量);函數(shù)原型:int MP3_INC_Volume(); 功 能:增大音量;參 數(shù):無(wú) ;返
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1