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

正文內(nèi)容

基于arm和qt的多路信號檢測系統(tǒng)設(shè)計畢業(yè)設(shè)計論文-資料下載頁

2025-06-18 15:17本頁面
  

【正文】 取 低 十 位copy_to_user(buffer, (char *)amp。ret, sizeof(ret))。 //把 得 到 的 值 傳 回 應(yīng) 用 程 序up(amp。)。 //釋 放 信 號 量 第三章 嵌入式 linux 移植及驅(qū)動開發(fā) 18 return sizeof(ret)。}static int s3c2410_adc_release(struct inode *inode, struct file *filp) //關(guān) 閉adc { MOD_DEC_USE_COUNT。 DPRINTK( adc closed\n)。 return 0。}由 于 編 譯 開 發(fā) 板 內(nèi) 核 時 直 接 把 ad 驅(qū) 動 加 入 到 內(nèi) 核 里 面 , 對 用 戶 的 只 是下 面 的 一 個 文 件 結(jié) 構(gòu) 。 在 用 戶 程 序 里 只 需 要 用 到open、 read、 write、 release 等 內(nèi) 核 函 數(shù) 即 可 。static struct file_operations s3c2410_fops = {owner: THIS_MODULE,open: s3c2410_adc_open,read: s3c2410_adc_read,write:s3c2410_adc_write,release: s3c2410_adc_release,}。 編 寫 用 戶 應(yīng) 用 程 序 測 試 my2410_adc 驅(qū) 動 。 建 立 應(yīng) 用 程 序include define ADC_DEV /dev/adc/0rawstatic int adc_fd = 1。static int init_ADdevice(void) //初 始 化 設(shè) 備{if((adc_fd=open(ADC_DEV, O_RDWR))0){ 第三章 嵌入式 linux 移植及驅(qū)動開發(fā) 19 printf(Error opening %s adc device\n, ADC_DEV)。return 1。}}static int GetADresult(int channel) //獲 取 AD 值{int PRESCALE=0XFF。int data=ADC_WRITE(channel, PRESCALE)。write(adc_fd, amp。data, sizeof(data))。read(adc_fd, amp。data, sizeof(data))。return data。}int main(void){int i。float d。pthread_t th_。void * retval。//set s3c44b0 AD register and start ADif(init_ADdevice()0)return 1。/* Create the threads 創(chuàng) 建 線 程 */pthread_create(amp。th_, NULL, Monitor, 0)。printf(\nPress Enter key exit!\n)。while( stop==0 ){ 第三章 嵌入式 linux 移植及驅(qū)動開發(fā) 20 for(i=0。 i=2。 i++){//采 樣 0~2 路 A/D 值d=((float)GetADresult(i)*)/。printf(a%d=%\t,i,d)。}usleep(1)。printf(\r)。}}GetADresult 函 數(shù) 的 具 體 過 程 如 下 : 假 如 我 們 的 比 列 因 子 是 0XFF, 通道 是 1 路 , 即 0XO1, 那 么 經(jīng) 過 int data=ADC_WRITE(channel, PRESCALE)。后 我 們 可 以 得 到 數(shù) 據(jù) 為 0X0100FF, 而 通 過 下 一 條 語 句 write(adc_fd, amp。data, sizeof(data))后 , 實 際 調(diào) 用 的 是 驅(qū) 動 程 序 中 的s3c2410_adc_write 函 數(shù) , 在 這 個 函 數(shù) 中 ch=ADC_WRITE_GETCH(data) ,又 將 通 道 0X01 獲 取 出 來 。 這 是 因 為 我 們 經(jīng) 常 在 采 樣 的 時 候 需 要 知 道 是 哪 個通 道 的 數(shù) 據(jù) , 比 列 因 子 是 AD 頻 率 轉(zhuǎn) 換 的 一 個 因 素 , 所 以 我 們 在 讀 取 數(shù) 據(jù) 時 ,要 保 持 這 兩 個 部 分 的 值 是 不 變 的 , 而 真 正 換 取 10 位 二 進(jìn) 制 的 數(shù) 據(jù) 則 是 在read 函 數(shù) 中 , 通 過 讀 取 寄 存 器 的 值 , 再 取 出 需 要 的 那 10 位 。 將 驅(qū) 動 程 序 下 載 掛 載 到 內(nèi) 核 , 下 載 應(yīng) 用 程 序 到 開 發(fā) 板 上 后 , 運 行 應(yīng)用 程 序 , 扭 動 s3c2410 開 發(fā) 板 上 的 定 位 器 , 可 以 觀 察 到 ADC 轉(zhuǎn) 換 值 的 變 化 ,證 明 驅(qū) 動 程 序 工 作 正 常 。 效 果 圖 如 下 : 第三章 嵌入式 linux 移植及驅(qū)動開發(fā) 21 圖 33 ADC 驅(qū)動測試截圖 觸 摸 屏 在 ARM中 的 驅(qū) 動 開 發(fā)SPI 接 口 是 Motorola 推 出 的 一 種 同 步 串 行 接 口 , 采 用 全 雙 工 、 四 線 通信 系 統(tǒng) , S3C2410X 是 三 星 推 出 的 自 帶 觸 摸 屏 接 口 的 ARM920T 內(nèi) 核 芯 片 ,ADS7848 為 BurrBrown 生 產(chǎn) 的 一 款 性 能 優(yōu) 異 的 觸 摸 屏 控 制 器 。 本 文 采 用SPI 接 口 的 觸 摸 屏 控 制 器 ADS7848 外 接 四 線 電 阻 式 觸 摸 屏 , 這 種 方 式 最 顯著 的 特 點 是 響 應(yīng) 速 度 更 快 、 靈 敏 度 更 高 , 微 處 理 器 與 觸 摸 屏 控 制 器 間 的 通 訊時 間 大 大 減 少 , 提 高 了 微 處 理 器 的 效 率 。 ADS7848 與 S3C2410 的 硬 件 連 接如 圖 34 所 示 , 鑒 于 ADS7848 差 分 工 作 模 式 的 優(yōu) 點 , 在 硬 件 電 路 中 將 其 配置 為 差 分 模 式 。 [4] 第三章 嵌入式 linux 移植及驅(qū)動開發(fā) 22 圖 34 連接圖 Linux 操 作 系 統(tǒng) 通 過 系 統(tǒng) 調(diào) 用 和 硬 件 中 斷 完 成 從 用 戶 空 間 到 內(nèi) 核 空 間 的控 制 轉(zhuǎn) 移 。 設(shè) 備 驅(qū) 動 模 塊 的 功 能 就 是 擴 展 內(nèi) 核 的 功 能 , 主 要 完 成 兩 部 分 任 務(wù) :一 個 是 系 統(tǒng) 調(diào) 用 , 另 一 個 是 處 理 中 斷 。 圖 35 是 一 個 設(shè) 備 驅(qū) 動 模 塊 動 態(tài) 掛接 、 卸 載 和 系 統(tǒng) 調(diào) 用 的 全 過 程 。 系 統(tǒng) 調(diào) 用 部 分 則 是 對 設(shè) 備 的 操 作 過 程 , 比 如open, read, write, ioctl 等 操 作 , 設(shè) 備 驅(qū) 動 程 序 所 提 供 的 這 組 入 口 點 由幾 個 結(jié) 構(gòu) 向 系 統(tǒng) 進(jìn) 行 說 明 , 分 別 是 file_operations 數(shù) 據(jù) 結(jié) 構(gòu) 、 inode 數(shù)據(jù) 結(jié) 構(gòu) 和 file 數(shù) 據(jù) 結(jié) 構(gòu) 。 內(nèi) 核 內(nèi) 部 通 過 file 結(jié) 構(gòu) 識 別 設(shè) 備 , 通 過file_operations 數(shù) 據(jù) 結(jié) 構(gòu) 提 供 文 件 系 統(tǒng) 的 入 口 點 函 數(shù) , 也 就 是 訪 問 設(shè) 備 驅(qū)動 的 函 數(shù) , 結(jié) 構(gòu) 中 的 每 一 個 成 員 都 對 應(yīng) 著 一 個 系 統(tǒng) 調(diào) 用 。 在 嵌 入 式 系 統(tǒng) 的 開發(fā) 中 , 我 們 一 般 僅 僅 實 現(xiàn) 其 中 幾 個 接 口 函 數(shù) :read、 write、 open、 ioctl 及 release 就 可 以 完 成 應(yīng) 用 系 統(tǒng) 需 要 的 功 能 。寫 驅(qū) 動 程 序 的 任 務(wù) 之 一 就 是 完 成 file_operations 中 的 函 數(shù) 指 針 。 [9] 第三章 嵌入式 linux 移植及驅(qū)動開發(fā) 23 圖 35 設(shè)備驅(qū)動在內(nèi)核中的掛接、卸載和系統(tǒng)調(diào)用過程在 驅(qū) 動 程 序 中 有 三 個 重 要 的 數(shù) 據(jù) 結(jié) 構(gòu) : 用 于 表 示 筆 觸 點 數(shù) 據(jù) 信 息 的 結(jié) 構(gòu)TS_RET, 表 示 ADS7843 中 有 關(guān) 觸 摸 屏 控 制 器 信 息 的 結(jié) 構(gòu) TS_DEV, 以 及 驅(qū)動 程 序 與 應(yīng) 用 程 序 的 接 口 file_operations 結(jié) 構(gòu) 的 s3c2410_fops:typedef struct {    unsigned short pressure。    unsigned short x。    unsigned short y。    unsigned short pad?!?  } TS_RET?!?  typedef struct {    unsigned int PenStatus?!?  TS_RET buf[MAX_TS_BUF]?!?  unsigned int head, tail?!?  wait_queue_head_t wq。    spinlock_t lock。 第三章 嵌入式 linux 移植及驅(qū)動開發(fā) 24     } TS_DEV。    static struct file_operations s3c2410_fops = {    owner: THIS_MODULE,    open: s3c2410_ts_open,    read: s3c2410_ts_read, release: s3c2410_ts_release,poll: s3c2410_ts_poll, }。init_module 函 數(shù) 是 模 塊 的 入 口 函 數(shù) 。 在 函 數(shù) 內(nèi) 部 通 過s3c2410_ts_init( )實 現(xiàn) 模 塊 的 初 始 化 工 作 。 在 本 設(shè) 計 中 設(shè) 備 與 系 統(tǒng) 之 間以 中 斷 方 式 進(jìn) 行 數(shù) 據(jù) 交 換 。在 s3c2410_ts_init()中 的 另 一 個 重 要 任 務(wù) 是 執(zhí) 行 接 口 函 數(shù)s3c2410_ts_open(), 在 這 個 函 數(shù) 中 初 始 化 緩 沖 區(qū) 的 頭 尾 指 針 、 觸 摸 屏 狀 態(tài)變 量 及 觸 摸 屏 事 件 等 待 隊 列 ?!?  module_exit()該 函 數(shù) 調(diào) 用 s3c2410_ts_exit(), 主 要 任 務(wù) 是 撤 銷 驅(qū) 動 程 序 向 內(nèi) 核 的 登記 以 及 釋 放 申 請 的 中 斷 資 源 。接 口 函 數(shù) s3c2410_ts_read( )這 個 函 數(shù) 實 現(xiàn) 的 任 務(wù) 是 將 事 件 隊 列 從 設(shè) 備 緩 存 中 讀 到 用 戶 空 間 的 數(shù) 據(jù) 緩存 中 。 實 現(xiàn) 的 過 程 主 要 是 通 過 一 個 循 環(huán) , 只 有 在 事 件 隊 列 的 頭 、 尾 指 針 不 重合 時 , 才 能 成 功 的 從 指 向 的 隊 列 尾 部 讀 取 到 一 組 觸 摸 信 息 數(shù) 據(jù) ,并 退 出 循 環(huán) 。 否 則 調(diào) 用 讀 取 函 數(shù) 的 進(jìn) 程 就 要 進(jìn) 入 睡 眠 ?!?  坐 標(biāo) 讀 取 函 數(shù) s3c2410_get_XY()在 定 時 器 中 斷 處 理 程 序 中 , 當(dāng) 查 詢 到 與 相 連 的 EINT5/GPF5 為 低 電 平時 , 即 表 示 有 有 效 事 件 , 應(yīng) 該 調(diào) 用 s3c2410_get_XY()函 數(shù) 采 集 筆 觸 信 息 。ADS7843 有 多 種 轉(zhuǎn) 換 時 序 , 時 序 規(guī) 定 了 芯 片 與 設(shè) 備 及 CPU 間 是 如 何配 合 工 作 的 。 設(shè) 計 中 采 用 16 個 時 鐘 周 期 啟 動 一 次 轉(zhuǎn) 換 的 坐 標(biāo) 轉(zhuǎn) 換 方 式 。坐 標(biāo) 的 讀 取 是 通 過 多 次 采 集 取 平 均 值 的 方 法 , 以 X 坐 標(biāo) 的 讀 取 為 例 。 循 第三章 嵌入式 linux 移植及驅(qū)動開發(fā) 38 環(huán) 過 程 中 的 每 一 步 都 在 8 個 時 鐘 周 期 內(nèi) 完 成 , 數(shù) 據(jù) 的 處 理 嚴(yán) 格 按 照 時 序 進(jìn)行 , Y 坐 標(biāo) 的 采 集 與 X 坐 標(biāo) 類 似 。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1