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

正文內(nèi)容

非操作系統(tǒng)下的實驗嵌入式實驗報告-在線瀏覽

2025-05-10 12:42本頁面
  

【正文】 效技術(shù)。當兩臺數(shù)字設(shè)備之間傳輸距離較遠時,數(shù)據(jù)往往以串行方式傳輸。與并行通信相比,如果n位并行接口傳送n位數(shù)據(jù)需時間T,則串行傳送的時間最少為nT。(1)串行數(shù)據(jù)通信模式串行數(shù)據(jù)通信模式有單工通信、半雙工通信和全雙工通信3種基本的通信模式。u 半雙工通信:數(shù)據(jù)可以從設(shè)備A到設(shè)備B進行傳輸,也可以從設(shè)備B到設(shè)備A進行傳輸,但不能在同一時刻進行雙向傳輸。A. 異步通信方式異步通信時數(shù)據(jù)是一幀一幀傳送的,每幀數(shù)據(jù)包含有起始位(”0”)、數(shù)據(jù)位、奇偶校驗位和停止位(”1”),每幀數(shù)據(jù)的傳送靠起始位來同步。在異步通信的數(shù)據(jù)傳送中,傳輸線上允許空字符。u 字符的格式每個字符傳送時,必須前面加一起始位,后面加上u 波特率傳送數(shù)據(jù)位的速率稱為波特率,用位/秒(bit/s)來表示,稱之為波特。異步通信的波特率的數(shù)值通常為:150、300、600、1200、2400、4800、9600、14400、28800、115200等,數(shù)值成倍數(shù)變化。對于偶校驗就是要使字符加上校驗位有偶數(shù)個“1”;奇校驗就是要使字符加上校驗位有奇數(shù)個“1”。一般校驗位的產(chǎn)生和檢查是由串行通信控制器內(nèi)部自動產(chǎn)生,除了加上校驗位以外,通信控制器還自動加上停止位,用來指明欲傳送字符的結(jié)束。對接收器而言,若未能檢測到停止位則意味著傳送過程發(fā)生了錯誤。如果在傳送1個8位的字符時,其校驗位、起始位和停止位都為1個位,則相當于要傳送11個位信號,傳送效率只有約80%。同步傳輸采用字符塊的方式,減少每一個字符的控制和錯誤檢測數(shù)據(jù)位,因而可以具有較高的傳輸速率與異步方式不同的是,同步通信方式不僅在字符的本身之間是同步的,而且在字符與字符之間的時序仍然是同步的,即同步方式是將許多的字符聚集成一字符塊后,在每塊信息(常常稱之為信息幀)之前要加上1~2個同步字符,字符塊之后再加入適當?shù)腻e誤檢測數(shù)據(jù)才傳送出去。2).RS232C串行接口(1)RS232C接口規(guī)格EIA所制定的傳送電氣規(guī)格如表21所示。12V的電壓來驅(qū)動信號線,TTL標準與RS232C標準之間的電平轉(zhuǎn)換電路通常采用集成電路芯片實現(xiàn),如MAX232等(2)RS232C接口信號EIA制定的RS232C接口與外界的相連采用25芯(DB25)和9芯(DB9)D型插接件,實際應(yīng)用中,并不是每只引腳信號都必須用到,25芯和9芯D型插接件引腳的定義,與信號之間的對應(yīng)關(guān)系如圖(3)RS232C的基本連接方式計算機利用RS232C接口進行串口通信,有簡單連接和完全連接兩種連接方式。如果應(yīng)用中還需要使用RS232C的控制信號,則采用完全連接方式,如圖213所示。這種格式通過起始位和停止位來實現(xiàn)字符的同步。UART可以產(chǎn)生中斷請求或DMA請求,以便在CPU和UART之間傳輸數(shù)據(jù)。如果外部設(shè)備通過UEXTCLK為UART提供時鐘,那么UART的傳輸速率可以更高。波特率發(fā)生器的時鐘可以由PCLK或UEXTCLK提供。發(fā)送時,數(shù)據(jù)被寫入FIFO,然后拷貝到發(fā)送移位器中,接下來數(shù)據(jù)通過發(fā)送數(shù)據(jù)引腳(TxDn)被發(fā)送。Uart0_SendByte(39。)。Uart0_SendByte(ch)。\n39。\n39。 //換行 UART0_SendChar(39。)。 } pWord++。139。 break。239。 break。339。 break。439。 break。 LED_Control(2,OFF)。 LED_Control(4,OFF)。}字符判斷并控制對應(yīng)LED燈點亮2ch=Uart0_Getch()。在串口助手里很容易看出來,數(shù)據(jù)是不是錯誤或者丟失。 實時時鐘實驗 實驗?zāi)康氖煜RM的實時時鐘的讀寫 實驗原理實時時鐘(RTC)單元在系統(tǒng)電源關(guān)閉的情況下可以在備用電池下工作。與RTC相關(guān)的寄存器有:u 實時時鐘控制寄存器(RTCCON)在讀取或者修改時間前,必須先把該寄存器的第 0 位 RTCEN 置 1,該寄存器的位如下所示 u 年寄存器 u 月寄存器 u 日寄存器 u 時寄存器 u 分寄存器 u 秒寄存器1. TQ2440實驗平臺2. JLINK 調(diào)試器3. 串口線 實驗步驟1. 2. 閱讀代碼,單步執(zhí)行,體會void RTC_Time_Set( void )和void RTC_Display(void)函數(shù)里面對相關(guān)秒寄存器的寫入和讀取過程,通過串口觀察到的結(jié)果。把代碼和相應(yīng)的現(xiàn)象寫入下表序號程序現(xiàn)象1void RTC_Time_Set( void ){rRTCCON = 1 。 //年 閏年測試rBCDMON = 0x12 。 //日 rBCDDAY = 0x04 。 //小時rBCDMIN = 0x49 。 //秒rRTCCON amp。 }RTC起始時間設(shè)置位“2014年12月26日星期四14時49分50秒”2void RTC_Display(void) {U16 year 。 // weekU8 hour, minute, second 。 year = 0x2000+rBCDYEAR 。 //月day = rBCDDATE 。 //小時minute = rBCDMIN 。 //秒rRTCCON amp。 //RTC read and write disableUart_Printf(RTCtime : %04x%02x%02x %02x:%02x:%02x\n, year, month, day, hour, minute, second )。}讀取RTC當前時間在通過串口在串口調(diào)試助手中顯示4. 修改工程,改變時間設(shè)置值,嘗試設(shè)置閏年和非閏年,觀察實驗結(jié)果,把把代碼和相應(yīng) 的現(xiàn)象寫入下表序號程序現(xiàn)象1RTC_Time_Set()。}RTC初始時間為時間為2014年2月28日星期一23:59:57;串口每秒顯示一次當前時間4秒后當前時間為2014年2月29日星期二00:00:00;2RTC_Time_Set()。}RTC初始時間為時間為2013年2月28日星期一23:59:57;串口每秒顯示一次當前時間4秒后當前時間為2013年3月1日星期二00:00:00; 看門狗實驗 實驗?zāi)康氖煜RM的看門狗的操作 實驗原理在程序運行過程中中,由于軟件問題或者外界的干擾,造成程序跑飛,而陷入死循環(huán),程序的正常運行被打斷,由于系統(tǒng)無法繼續(xù)工作,會造成整個系統(tǒng)的陷入停滯狀態(tài),發(fā)生不可預料的后果,所以出于對程序運行狀態(tài)進行實時監(jiān)測的考慮,便產(chǎn)生了一種專門用于監(jiān)測單片機程序運行狀態(tài)的芯片,俗稱“看門狗”(watchdog)。S3C2440A中與看門狗相關(guān)的寄存器有:u 看門狗控制寄存器(WTCON)看門狗控制寄存器如下表所示,其用于啟動和關(guān)閉看門狗。注意:要觀察看門狗的復位,必須全速運行程序,不能單步執(zhí)行序號程序現(xiàn)象1for(i=5。i++){led_con(i,ON)。led_con(i,OFF)。}程序運行大約2s后停止運行并且AXD顯示:“Processor ARM79_0 raised an exception 。i=8。//rWTCNT=2000。led_con(i,OFF)。 //喂狗delay(1)。同樣,在設(shè)計一個較為復雜的應(yīng)用程序時,也通常把一個大型任務(wù)分解成多個小任務(wù),然后在計算機中通過運行這些小任務(wù),最終達到完成大任務(wù)的目的,這種做法也使用應(yīng)用程序的維護變得方便起來。 在μC/OSII 中,與上述小任務(wù)對應(yīng)的是程序?qū)嶓w就叫做“任務(wù)”(實質(zhì)是一個線程)。 從應(yīng)用程序設(shè)計的角度來看,μC/OSII 的任務(wù)就是一個線程,就是一個用來解決用戶問題的 C 語言函數(shù)和與之相關(guān)聯(lián)的一些數(shù)據(jù)結(jié)構(gòu)而構(gòu)成的一個實體。有應(yīng)用程序設(shè)計者編寫得任務(wù),叫做用戶任務(wù);有系統(tǒng)提供的任務(wù)叫做系統(tǒng)任務(wù)。 為了管理上的方便,μC/OSII 把每一個任務(wù)都作為一個節(jié)點。1) 任務(wù)的狀態(tài) 因為在嵌入式系統(tǒng)中只有一個 CPU,所以在一個具體時刻只能允許一個任務(wù)占用 CPU。任務(wù)在μC/OSII 中可能處于表31 所列的 5 種狀態(tài)之一。簡單地說,任務(wù)在沒有被配備任務(wù)控制塊 或被剝奪了任務(wù)控制塊時的狀態(tài)叫做任務(wù)的睡眠狀態(tài)就緒狀態(tài) 如果系統(tǒng)為任務(wù)配備了任務(wù)控制塊且在任務(wù)就緒表中進行了就緒登記,則 任務(wù)就具備了運行的充分條件,這時任務(wù)的狀態(tài)叫就緒狀態(tài)運行狀態(tài) 處于就緒狀態(tài)的任務(wù),如果經(jīng)調(diào)度器獲得了 CPU 的使用權(quán),則任務(wù)進入運 行狀態(tài),任何時刻只能有一個任務(wù)進入運行狀態(tài),就緒的任務(wù)只有當所有 優(yōu)先級高于本任務(wù)的任務(wù)都轉(zhuǎn)為等待狀態(tài)時,才能進入運行狀態(tài)等待狀態(tài) 正在運行的任務(wù), 需要等待一段時間或者需要等待一個事件發(fā)生再運行時, 該任務(wù)就會把 CPU 的使用權(quán)讓給其他任務(wù)而使任務(wù)進入等待狀態(tài)中斷服務(wù)狀態(tài) 一個正在運行的任務(wù)一旦響應(yīng)中斷申請就會中止運行而去執(zhí)行中斷服務(wù)程 序,這時任務(wù)的狀態(tài)叫做中斷服務(wù)狀態(tài)任務(wù)在不同狀態(tài)之間的轉(zhuǎn)換如圖 31 所示2) 用戶任務(wù)代碼的一般結(jié)構(gòu)用戶任務(wù)代碼的一般結(jié)構(gòu)根據(jù)嵌入式任務(wù)的工作特點,任務(wù)的執(zhí)行代碼通常是一個無限循環(huán)結(jié)構(gòu),并且在這個循環(huán)中可以響應(yīng)中斷,這種結(jié)構(gòu)叫做超循環(huán)結(jié)構(gòu)。){可以被中斷的代碼;OS_ENTER_CRITICAL()。//退出臨界段(開中斷)可以被中斷的用戶代碼;}}從程序設(shè)計的角度來看,一個μC/OSII 任務(wù)的代碼就是一個 C 語言函數(shù)。為 了 有 效 地 對 中 斷 進 行 控 制 , 在 任 務(wù) 的 代 碼 里 可 以 使 用 μ C/OSII 定義的宏OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()來控制任務(wù)何時響應(yīng)中斷,何時屏蔽中斷。在具體應(yīng)用中可以,根據(jù)實際需要在一個任務(wù)中使用這對宏設(shè)置對個臨界段。用戶應(yīng)用程序的一般結(jié)構(gòu)從程序代碼上來看,用戶任務(wù)似乎就是一個 C 語言函數(shù),但是這個函數(shù)不是一般的 C語言函數(shù),它是一個任務(wù)(線程)。用戶應(yīng)用程序結(jié)構(gòu)Void MyTask1(void* pdata) //定義用戶任務(wù) 1{for(。){.......}}Void MyTask3(void* pdata) //定義用戶任務(wù) 3{for(。 //初始化μC/OSII........OSTaskCreat(MyT ask1,....)。 //創(chuàng)建用戶任務(wù) 2OSTaskCreat(MyTask3,....)。 //啟動任務(wù)......}3) 系統(tǒng)任務(wù) μC/OSII 預定義了兩個應(yīng)用程序服務(wù)的系統(tǒng)任務(wù):空閑任務(wù)和統(tǒng)計任務(wù)。(1) 空閑任務(wù) 在多任務(wù)系統(tǒng)運行時,系統(tǒng)經(jīng)常會在某個時間內(nèi)無用戶任務(wù)可以運行而處于所謂的空閑狀態(tài)??臻e任務(wù)代碼如下Void OSTaskIdle(void* pdata) { if OS_CRITICAL_METHOD ==3OS_CPU_SR cpu_sr。
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1