亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊(cè)

中斷程序

  • 順序表的就地逆置算法,文檔中有程序?qū)崿F(xiàn)算法的代碼與可運(yùn)行源程序

    順序表的就地逆置算法,文檔中有程序?qū)崿F(xiàn)算法的代碼與可運(yùn)行源程序

    標(biāo)簽: 算法 順序表 文檔 代碼

    上傳時(shí)間: 2014-01-12

    上傳用戶:zhuoying119

  • matlab用鼠標(biāo)標(biāo)出圓心和半徑提取圓中圖像程序

    matlab用鼠標(biāo)標(biāo)出圓心和半徑提取圓中圖像程序

    標(biāo)簽: matlab用鼠標(biāo)標(biāo)出圓心和半徑提取圓中圖像

    上傳時(shí)間: 2016-01-26

    上傳用戶:hggyhh

  • MIX的模擬器: MIX是《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》(TAOCP)的作者高德納(Donald.E.Knuth)在TAOCP中描述算法時(shí)使用的一種假想的機(jī)器

    MIX的模擬器: MIX是《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》(TAOCP)的作者高德納(Donald.E.Knuth)在TAOCP中描述算法時(shí)使用的一種假想的機(jī)器,所以書中的匯編代碼無法在任何一個(gè)機(jī)器上運(yùn)行,附件中的程序可以讓以MIXAL匯編語言寫成的算法在Windows平臺(tái)上匯編并且可以單步跟蹤運(yùn)行。詳細(xì)情況參看其中的MIXBuilder.doc文件。

    標(biāo)簽: TAOCP MIX Donald Knuth

    上傳時(shí)間: 2015-04-03

    上傳用戶:wkchong

  • 基本使用說明如下: 1、文件夾中均為MATLAB軟件M文件程序; 2、程序文件為每一章節(jié)中例題的MATLAB程序電子版

    基本使用說明如下: 1、文件夾中均為MATLAB軟件M文件程序; 2、程序文件為每一章節(jié)中例題的MATLAB程序電子版,程序名與例題名序號(hào)相對(duì)應(yīng); 3、此文件夾中的程序已經(jīng)經(jīng)過調(diào)試,在MATLAB 7.0或以上版本中均可以正常運(yùn)行; 4、程序頭中功能介紹了此程序的主要實(shí)現(xiàn)的功能。

    標(biāo)簽: MATLAB 程序 使用說明 軟件

    上傳時(shí)間: 2013-12-07

    上傳用戶:jhksyghr

  • 這是SEED-VPM642的膚色檢測(cè)程序。 在視頻顯示任務(wù)的循環(huán)中

    這是SEED-VPM642的膚色檢測(cè)程序。 在視頻顯示任務(wù)的循環(huán)中,程序首先將視頻數(shù)據(jù)從輸入緩沖區(qū)讀入自己開設(shè)的臨時(shí)圖像處理緩沖區(qū),再在臨時(shí)圖像處理緩沖區(qū)上進(jìn)行處理,處理后的數(shù)據(jù)再輸出到輸出緩沖區(qū)。 本程序還對(duì)膚色范圍進(jìn)行了判斷計(jì)算,并將膚色區(qū)域用方框標(biāo)出。

    標(biāo)簽: SEED-VPM 642 膚色檢測(cè) 程序

    上傳時(shí)間: 2014-06-18

    上傳用戶:15071087253

  • 在數(shù)字信號(hào)處理中的循環(huán)移位程序和門函數(shù)的源代碼

    在數(shù)字信號(hào)處理中的循環(huán)移位程序和門函數(shù)的源代碼,這是經(jīng)典書中的程序,請(qǐng)放心使用

    標(biāo)簽: 數(shù)字信號(hào)處理 循環(huán)移位 函數(shù) 程序

    上傳時(shí)間: 2013-12-08

    上傳用戶:1109003457

  • IC封裝製程簡(jiǎn)介(IC封裝制程簡(jiǎn)介)

    半導(dǎo)體的產(chǎn)品很多,應(yīng)用的場(chǎng)合非常廣泛,圖一是常見的幾種半導(dǎo)體元件外型。半導(dǎo)體元件一般是以接腳形式或外型來劃分類別,圖一中不同類別的英文縮寫名稱原文為   PDID:Plastic Dual Inline Package SOP:Small Outline Package SOJ:Small Outline J-Lead Package PLCC:Plastic Leaded Chip Carrier QFP:Quad Flat Package PGA:Pin Grid Array BGA:Ball Grid Array         雖然半導(dǎo)體元件的外型種類很多,在電路板上常用的組裝方式有二種,一種是插入電路板的銲孔或腳座,如PDIP、PGA,另一種是貼附在電路板表面的銲墊上,如SOP、SOJ、PLCC、QFP、BGA。    從半導(dǎo)體元件的外觀,只看到從包覆的膠體或陶瓷中伸出的接腳,而半導(dǎo)體元件真正的的核心,是包覆在膠體或陶瓷內(nèi)一片非常小的晶片,透過伸出的接腳與外部做資訊傳輸。圖二是一片EPROM元件,從上方的玻璃窗可看到內(nèi)部的晶片,圖三是以顯微鏡將內(nèi)部的晶片放大,可以看到晶片以多條銲線連接四周的接腳,這些接腳向外延伸並穿出膠體,成為晶片與外界通訊的道路。請(qǐng)注意圖三中有一條銲線從中斷裂,那是使用不當(dāng)引發(fā)過電流而燒毀,致使晶片失去功能,這也是一般晶片遭到損毀而失效的原因之一。   圖四是常見的LED,也就是發(fā)光二極體,其內(nèi)部也是一顆晶片,圖五是以顯微鏡正視LED的頂端,可從透明的膠體中隱約的看到一片方型的晶片及一條金色的銲線,若以LED二支接腳的極性來做分別,晶片是貼附在負(fù)極的腳上,經(jīng)由銲線連接正極的腳。當(dāng)LED通過正向電流時(shí),晶片會(huì)發(fā)光而使LED發(fā)亮,如圖六所示。     半導(dǎo)體元件的製作分成兩段的製造程序,前一段是先製造元件的核心─晶片,稱為晶圓製造;後一段是將晶中片加以封裝成最後產(chǎn)品,稱為IC封裝製程,又可細(xì)分成晶圓切割、黏晶、銲線、封膠、印字、剪切成型等加工步驟,在本章節(jié)中將簡(jiǎn)介這兩段的製造程序。

    標(biāo)簽: 封裝 IC封裝 制程

    上傳時(shí)間: 2014-01-20

    上傳用戶:蒼山觀海

  • 驅(qū)動(dòng)程序與應(yīng)用程序的接口

    有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個(gè)符號(hào)鏈;2. 通過輸出到一個(gè)接口WDM驅(qū)動(dòng)程序建議使用輸出到一個(gè)接口而不推薦使用創(chuàng)建符號(hào)鏈的方法。這個(gè)接口保證PDO的安全,也保證安全地創(chuàng)建一個(gè)惟一的、獨(dú)立于語言的訪問設(shè)備的方法。一個(gè)應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個(gè)Win32 APIs和設(shè)備對(duì)象的分發(fā)函數(shù)之間存在一個(gè)映射關(guān)系。獲得對(duì)設(shè)備對(duì)象訪問的第一步就是打開一個(gè)設(shè)備對(duì)象的句柄。 用符號(hào)鏈打開一個(gè)設(shè)備的句柄為了打開一個(gè)設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個(gè)符號(hào)鏈出口,應(yīng)用程序可以用下面這個(gè)例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個(gè)設(shè)備。這個(gè)設(shè)備必須有一個(gè)符號(hào)鏈,以便應(yīng)用程序能夠打開它。有關(guān)細(xì)節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個(gè)參數(shù)中前綴后的部分就是這個(gè)符號(hào)鏈的名字。注意:CreatFile中的第一個(gè)參數(shù)不是Windows 98/2000中驅(qū)動(dòng)程序(.sys文件)的路徑。是到設(shè)備對(duì)象的符號(hào)鏈。如果使用DriverWizard產(chǎn)生驅(qū)動(dòng)程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號(hào)鏈。這意味著符號(hào)鏈名有一個(gè)附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個(gè)參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個(gè)輸出接口打開句柄用這種方式打開一個(gè)句柄會(huì)稍微麻煩一些。DriverWorks庫(kù)提供兩個(gè)助手類來使獲得對(duì)該接口的訪問容易一些,這兩個(gè)類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個(gè)設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個(gè)實(shí)例來獲得一個(gè)或更多的CdeviceInterface類的實(shí)例。CdeviceInterface類是一個(gè)單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個(gè)路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個(gè)小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在設(shè)備中執(zhí)行I/O操作一旦應(yīng)用程序獲得一個(gè)有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對(duì)象的IRPs。下面的表顯示了這種對(duì)應(yīng)關(guān)系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解釋一下設(shè)備類成員的Close和CleanUp:CreateFile使內(nèi)核為設(shè)備創(chuàng)建一個(gè)新的文件對(duì)象。這使得多個(gè)句柄可以映射同一個(gè)文件對(duì)象。當(dāng)這個(gè)文件對(duì)象的最后一個(gè)用戶級(jí)句柄被撤銷后,I/O管理器調(diào)用CleanUp。當(dāng)沒有任何用戶級(jí)和核心級(jí)的對(duì)文件對(duì)象的訪問的時(shí)候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯(cuò)誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會(huì)在打開設(shè)備的時(shí)候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個(gè)屬性,因?yàn)樗鼘?dǎo)致沒有特權(quán)的用戶企圖打開這個(gè)設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對(duì)象的屬性。當(dāng)設(shè)備設(shè)置DO_DIRECT_IO標(biāo)志,I/O管理器將buff鎖住在存儲(chǔ)器中,并且創(chuàng)建了一個(gè)存儲(chǔ)在IRP中的MDL域。一個(gè)設(shè)備可以通過調(diào)用Kirp::Mdl來存取MDL。當(dāng)設(shè)備設(shè)置DO_BUFFERED_IO標(biāo)志,設(shè)備對(duì)象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當(dāng)設(shè)備不設(shè)置DO_BUFFERED_IO標(biāo)志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來對(duì)應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲(chǔ)區(qū)并沒有被鎖住而且地址只對(duì)調(diào)用進(jìn)程有效。驅(qū)動(dòng)程序可以使用KIrp::UserBuffer來存取IRP域。對(duì)于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對(duì)象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個(gè)宏的其中一個(gè)參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對(duì)應(yīng)的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數(shù):Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統(tǒng)分配一個(gè)單一的緩沖來作為輸入與輸出。驅(qū)動(dòng)程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動(dòng)程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時(shí),I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級(jí)調(diào)用者使用的緩沖中。驅(qū)動(dòng)程序必須在結(jié)束前存儲(chǔ)拷貝到IRP的Information成員中的數(shù)據(jù)個(gè)數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個(gè)系統(tǒng)緩沖,這個(gè)緩沖驅(qū)動(dòng)程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對(duì)象,驅(qū)動(dòng)程序?qū)@個(gè)對(duì)象的訪問通過調(diào)用KIrp::Mdl來實(shí)現(xiàn)。對(duì)于METHOD_OUT_DIRECT,調(diào)用者必須有對(duì)緩沖的寫訪問權(quán)限。注意,對(duì)METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會(huì)做映射來配置緩沖。虛擬地址只對(duì)調(diào)用進(jìn)程有效。這里是一個(gè)用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個(gè)IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個(gè)DeviceIoControl調(diào)用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,這里放的是包含有執(zhí)行操作命令的字符串指針  0, FirmwareRev,      //這里是output串指針,存放從驅(qū)動(dòng)程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動(dòng)程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    標(biāo)簽: 驅(qū)動(dòng)程序 應(yīng)用程序 接口

    上傳時(shí)間: 2013-10-17

    上傳用戶:gai928943

  • 4x4鍵盤的設(shè)計(jì)與制作

    三種方法讀取鍵值􀂄 使用者設(shè)計(jì)行列鍵盤介面,一般常採(cǎi)用三種方法讀取鍵值。􀂉 中斷式􀂄 在鍵盤按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態(tài)判斷哪個(gè)按鍵被按下。􀂄 本實(shí)驗(yàn)採(cǎi)用中斷式實(shí)現(xiàn)使用者鍵盤介面。􀂉 掃描法􀂄 對(duì)鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對(duì)應(yīng)列的鍵被按下。否則掃描下一行。􀂉 反轉(zhuǎn)法􀂄 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。􀂄 根據(jù)讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結(jié)構(gòu)。按鍵按下將會(huì)使行列連成通路,這也是見的使用者鍵盤設(shè)計(jì)電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時(shí)去抖動(dòng) if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復(fù)位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計(jì)算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }

    標(biāo)簽: 4x4 鍵盤

    上傳時(shí)間: 2013-11-12

    上傳用戶:a673761058

  • 用MDK在RAM中調(diào)試程序的方法

    軟件環(huán)境:ReavView MDK3.04硬件平臺(tái):ZLG 公司出品的LPC2104 開發(fā)板使用條件:目標(biāo)代碼 < RAM 空間(此應(yīng)用中為16KB)

    標(biāo)簽: MDK RAM 調(diào)試 程序

    上傳時(shí)間: 2013-11-08

    上傳用戶:uuuuuuu

主站蜘蛛池模板: 沁水县| 湘潭市| 永丰县| 弥勒县| 万源市| 文昌市| 正宁县| 永和县| 饶阳县| 乌拉特中旗| 富阳市| 神农架林区| 象州县| 康定县| 资中县| 永嘉县| 松溪县| 余姚市| 上虞市| 尼玛县| 湖北省| 武定县| 古田县| 南和县| 金湖县| 大方县| 白水县| 长顺县| 太谷县| 丁青县| 象山县| 股票| 江城| 洛扎县| 朝阳市| 离岛区| 荥阳市| 华宁县| 怀来县| 上饶县| 眉山市|