




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式系統(tǒng)原理及應(yīng)用實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)六 多線程實(shí)驗(yàn)和AD實(shí)驗(yàn) 院 (系) 專 業(yè) 小組成員 成 績(jī) 指導(dǎo)教師 年 月一實(shí)驗(yàn)要求1. 參考實(shí)驗(yàn)指導(dǎo)書多線程實(shí)驗(yàn)和AD實(shí)驗(yàn),分析源碼。2. 編寫AD采集多線程程序,實(shí)現(xiàn)以下功能:1) 線程1:在循環(huán)中對(duì)指定的AD通道進(jìn)行轉(zhuǎn)換和顯示,顯示格式為:ADx = *.*V 。其中x為通道號(hào)0-2,初始值為0。每循環(huán)一次延時(shí)300ms。2) 線程2:接受用戶輸入,當(dāng)輸入數(shù)值0-2時(shí)表示指定AD通道線程1的通道號(hào)要隨指定值改變; 當(dāng)輸入字符S時(shí)顯示暫停;輸入ESC時(shí)程序終止退出。輸入其他鍵值時(shí)維持原狀。3. 擴(kuò)展部分:將線程1分為2個(gè)線程,一個(gè)用來計(jì)算,一個(gè)用來顯示
2、。2.1 實(shí)驗(yàn)步驟1 將編成完的程序打包放入虛擬機(jī)192.168.0.10/arm2410s;2 將arm2410s掛載到開發(fā)板中新建的host文件夾里3 進(jìn)入到虛擬機(jī)的文件夾里make,生成.o文件4 進(jìn)入串口連接開發(fā)板中運(yùn)行三實(shí)驗(yàn)程序/*by threewater<threewaterup->*/#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/ioctl.h>#include <
3、;pthread.h>#include <fcntl.h>#include "s3c2410-adc.h"#define ADC_DEV"/dev/adc/0raw"static int adc_fd = -1;static int init_ADdevice(void)if(adc_fd=open(ADC_DEV, O_RDWR)<0)printf("Error opening %s adc devicen", ADC_DEV);return -1;static int GetADresult(int cha
4、nnel)int PRESCALE=0XFF;int data=ADC_WRITE(channel, PRESCALE);write(adc_fd, &data, sizeof(data);read(adc_fd, &data, sizeof(data);return data;static int stop=0;int adc_num;int ch; /*esc退出*/static void* comMonitor(void* data)while(1)if (ch = 27)stop=1;exit(1);break;return NULL;/*采樣02路A/D值*/int
5、adn;int pausenum=0;void *show(void* data)float d;while( adn=0|adn=1|adn=2 )/采樣02路A/D值while(stop=0)while(pausenum=0)d=(float)GetADresult(adn)*3.3)/1024.0;printf("CH%d=%8.4fvt",adn,d);usleep(1);printf("r");break;/*a,b,c顯示02路*/void *input(void* data)char chr;pthread_t th_show;while(
6、1)scanf("%c",&chr);chr = getchar();if (chr = 48|chr=49|chr=50)/a,b,c-02路adc_num=chr;adn=adc_num-48;/*if (chr = 48|chr=49|chr=50)adc_num=chr;adn=adc_num-48;/*/*if (chr=43)adc_num=chr;adn=0;if (chr=38)adc_num=chr;adn=1;if (chr=77)adc_num=chr;adn=2;*/else if(chr=115)/s停止pausenum=1;else if
7、(chr=27)/esc退出ch=chr;stop=1;else if(chr!=115)/任意鍵繼續(xù)pausenum=0;/break;/*/int main(void)int i;float d;pthread_t th_com,th_show,th_input;void * retval;/set s3c44b0 AD register and start ADif(init_ADdevice()<0)return -1;/* Create the threads */pthread_create(&th_com, NULL, comMonitor, 0);pthread_
8、create(&th_input, NULL, input, 0);printf("nget the key inputn");pthread_create(&th_show, NULL, show, 0);/* Wait until producer and consumer finish. */pthread_join(th_input, &retval);pthread_join(th_show, &retval);pthread_join(th_com, &retval);printf("n");retur
9、n 0;三實(shí)驗(yàn)結(jié)果四實(shí)驗(yàn)總結(jié)4.1實(shí)驗(yàn)完成效果v 可以實(shí)現(xiàn)多線程AD采樣效果;v 當(dāng)輸入數(shù)值1、2、3時(shí)表示指定AD通道線程1的通道號(hào)要隨指定值改變; 當(dāng)輸入字符s時(shí)顯示暫停;當(dāng)輸入任意字符時(shí)重新開始;輸入ESC時(shí)程序終止退出。輸入其他鍵值時(shí)維持原狀;v 可以實(shí)現(xiàn)暫停、重新開始、退出功能;v 分為3個(gè)線程,一個(gè)用來獲取鍵值,一個(gè)用來顯示,一個(gè)用來退出。4.2實(shí)驗(yàn)總結(jié)在本次實(shí)驗(yàn)過程中,遇到了許多問題,開始時(shí),不能實(shí)現(xiàn)鍵入數(shù)字來指定AD通道線程的通道號(hào),只能實(shí)現(xiàn)通過字母h、j、k來指定AD通道線程的通道號(hào),原因是獲取鍵值的字符串,開始時(shí)設(shè)置為整型,后面將其改為字符char來獲取鍵值后,就可以通過鍵入數(shù)字來指定AD通道線程的通道號(hào)。通過本次實(shí)驗(yàn),提高了我使用軟件編程(C語言)的能力,使我的邏輯思維更加清晰,也讓我體會(huì)到了編程的樂趣; 設(shè)計(jì)之前要構(gòu)思好大致方向,設(shè)計(jì)中出現(xiàn)錯(cuò)誤要反復(fù)調(diào)試,可以設(shè)計(jì)一小部分,然后調(diào)試一小部分,可以使問題簡(jiǎn)單化; 在課堂上學(xué)習(xí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)鋁鎳鈷永磁市場(chǎng)前景趨勢(shì)及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025重慶市安全員-A證考試題庫(kù)附答案
- 2025-2030年中國(guó)金屬鈷市場(chǎng)發(fā)展趨勢(shì)規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)袋式除塵器行業(yè)運(yùn)營(yíng)趨勢(shì)規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)芝麻素市場(chǎng)運(yùn)行狀況與前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)翻譯行業(yè)競(jìng)爭(zhēng)狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)砂巖行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)及發(fā)展風(fēng)險(xiǎn)分析報(bào)告
- 2025-2030年中國(guó)電熱水龍頭市場(chǎng)運(yùn)行現(xiàn)狀及發(fā)展前景預(yù)測(cè)報(bào)告
- 廣西民族大學(xué)《建筑設(shè)備自動(dòng)化A》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東外語外貿(mào)大學(xué)《法律與人生》2023-2024學(xué)年第二學(xué)期期末試卷
- 裝修施工規(guī)定(十四篇)
- 消防工程維保方案三篇
- 高考一輪復(fù)習(xí)《文學(xué)類文本閱讀(小說)》教案
- 空間向量求線面角
- 閱讀與思考圓錐曲線的光學(xué)性質(zhì)及其應(yīng)用課件
- 試產(chǎn)到量產(chǎn)項(xiàng)目轉(zhuǎn)移清單
- TB編程從入門到進(jìn)階
- 城市軌道交通應(yīng)急處理 01 城市軌道交通應(yīng)急處理概述-2
- 2023年全國(guó)中學(xué)生物理競(jìng)賽預(yù)賽試題含答案版
- 葛傳椝向?qū)W習(xí)英語者講話
- 6人小品《沒有學(xué)習(xí)的人不傷心》臺(tái)詞完整版
評(píng)論
0/150
提交評(píng)論