注:1.這篇文章斷斷續續寫了很久,畫圖技術也不精,難免錯漏,大家湊合看.有問題可以留言. 2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調制波,通過調整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環可以看出,完成一個PWM 周期,共循環255 次。 假設bright=100 時候,在第0~100 次循環中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環是高電平,155 次循環是低電平。 如果忽略指令執行時間的話,這次的PWM 波形占空比為100/255,如果調整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設置了每次for 循環之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設置 int StartPWMPin = 0, EndPWMPin = 13; //設置D0~D13為PWM 引腳 int PWMResolution = 255; //設置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環是為14盞燈做漸亮的。每次Arduino loop()循環, //brights 自增一次。直到brights=255時候,將brights 置零重新計數。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\ 所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。
上傳時間: 2013-10-08
上傳用戶:dingdingcandy
Altera ModelSim 6.5仿真入門教程,需要的可自行下載。 平臺 軟件:ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 內容 1 設計流程 使用ModelSim仿真的基本流程為: 圖1.1 使用 ModelSim仿真的基本流程 2 開始 2.1 新建工程 打開ModelSim后,其畫面如圖2.1所示。
上傳時間: 2014-12-31
上傳用戶:niumeng16
IP核生成文件:(Xilinx/Altera 同) IP核生成器生成 ip 后有兩個文件對我們比較有用,假設生成了一個 asyn_fifo 的核,則asyn_fifo.veo 給出了例化該核方式(或者在 Edit-》Language Template-》COREGEN 中找到verilog/VHDL 的例化方式)。asyn_fifo.v 是該核的行為模型,主要調用了 xilinx 行為模型庫的模塊,仿真時該文件也要加入工程。(在 ISE中點中該核,在對應的 processes 窗口中運行“ View Verilog Functional Model ”即可查看該 .v 文件)。如下圖所示。
上傳時間: 2013-10-20
上傳用戶:lingfei
12306太難進了,好不容易今晚進去了,結果因沒裝安全證書,付款時沒完成,太可惜了。所以給大家共享一下12306安全證書下載。 12306安全證書安裝方法: 步驟一:雙擊根證書文件 彈出證書屬性的對話框,此時該根證書并不受信任,我們需要將其加入“受信任的根證書頒發機構”,如右圖所示: 步驟二:點擊“安裝證書”,彈出證書導入向導,如右圖所示: 步驟三:點擊下一步,選擇證書的存儲區,如右圖所示: 步驟四:選擇“將所有的證書放入下列存儲區”,然后點擊下一步,選擇證書存儲,如右圖所示: 步驟五:在“選擇證書存儲”對話框中選擇“受信任的根證書頒發機構”,點擊確定,此時返回到證書導入向導頁面,如右圖所示: 步驟六:在證書導入向導頁面,證書存儲變為“受信任的根證書頒發機構”,點擊下一步 步驟七:點擊“完成”,此時會彈出安全警告,如下圖所示: 步驟八:點擊“是”,安裝該證書。此時所有操作完成,成功將SRCA加入“受信任的根證書頒發機構”。再次雙擊 ,如右圖所示: 此時SRCA為受信任狀態。歡迎您繼續體驗www.12306.cn提供的服務。
上傳時間: 2013-10-14
上傳用戶:haojiajt
12306太難進了,好不容易今晚進去了,結果因沒裝安全證書,付款時沒完成,太可惜了。所以給大家共享一下12306安全證書下載。 12306安全證書安裝方法: 步驟一:雙擊根證書文件 彈出證書屬性的對話框,此時該根證書并不受信任,我們需要將其加入“受信任的根證書頒發機構”,如右圖所示: 步驟二:點擊“安裝證書”,彈出證書導入向導,如右圖所示: 步驟三:點擊下一步,選擇證書的存儲區,如右圖所示: 步驟四:選擇“將所有的證書放入下列存儲區”,然后點擊下一步,選擇證書存儲,如右圖所示: 步驟五:在“選擇證書存儲”對話框中選擇“受信任的根證書頒發機構”,點擊確定,此時返回到證書導入向導頁面,如右圖所示: 步驟六:在證書導入向導頁面,證書存儲變為“受信任的根證書頒發機構”,點擊下一步 步驟七:點擊“完成”,此時會彈出安全警告,如下圖所示: 步驟八:點擊“是”,安裝該證書。此時所有操作完成,成功將SRCA加入“受信任的根證書頒發機構”。再次雙擊 ,如右圖所示: 此時SRCA為受信任狀態。歡迎您繼續體驗www.12306.cn提供的服務。
上傳時間: 2013-10-15
上傳用戶:aig85
系統結構如 圖 1所示 , 從 系統 結 構圖可 以看 出 , 系統主要包括視頻信 號輸入模塊 , 視頻信號處 理模 塊和視頻信號輸出模塊等 3個部分組成。各個模塊主要功能為: 視頻輸入模塊 將 采 集 的 多路 視 頻 信 號 轉 換成 數 字 信 號 送 到F P GA; 視頻處理模塊主要有F P GA 完成 ,根據 需要 對輸入 的數字視頻信號進行處理 ; 視頻輸 出模塊將 F P GA處理后的信號轉換成模擬信號輸出到顯示器。
上傳時間: 2013-11-09
上傳用戶:xiaoyunyun
附件附帶破解補丁 浩辰CAD 2012專業版破解方法: 按正常安裝浩辰CAD 2012專業版,點擊安裝KeyGen.exe。 浩辰CAD2012,以增強軟件實用性、易用性為主要目標,新增了大量實用功能,改進了著色、消隱的正確性,提升了大幅面光柵圖像處理的性能,同時改進了LISP\VBA二次開發接口的正確性和兼容性。 浩辰CAD 2012根據國內外用戶的需求,增加了大量實用功能,例如動態塊、DWF文件插入、隔離隱藏對象、轉換EXCEL表格、塊屬性管理器、放樣、超級填充等。 浩辰cad2012新增功能: 1、動態塊(bedit) 動態塊具有靈活性和智能性。 用戶在操作時可以輕松地更改圖形中的動態塊參照。 可以通過自定義夾點或自定義特性來操作動態塊參照中的幾何圖形。 a)通過設置圖塊中元素的可見性,一個圖塊中可以包含一種圖形的多種形態,如下圖的汽車模塊就包含跑車、轎車和卡車的各向視圖,只需在可見性列表中選擇一個選項,就可以顯示相應的圖形。 還可對圖塊中的圖形設置參數和動作,可對圖塊的整體或部分圖形進行移動、旋轉、翻轉、縮放、陣列等;并可建立查詢列表,對圖塊進行參數化控制。通過圖塊的動作設置,一個圖塊可以派生出數個圖塊,如下圖所示: 2、DWF參考底圖(dwfattach) 可以將dwf文件插入到當前圖中作為參考底圖,并可以捕捉到底圖的端點、中點,如下圖所示: 3、對象隔離、對象隱藏、取消對象隔離 可將選擇的對象暫時隱藏,也可將選擇對象以外的其他所有對象隱藏。當圖中對象較多,利用此命令可以簡化圖紙,方便后續操作,操作起來比圖層隔離更加簡便、直觀。 4、凍結其它圖層和鎖定其它圖層 浩辰CAD 之前版本提供了圖層隔離的功能,凍結其他圖層和鎖定其它圖層與圖層隔離功能類似,可以通過選擇需要顯示或可編輯對象,將其他圖層進行凍結和鎖定。 5、CAD表格轉EXCEL表格 可以直接選擇CAD中由直線、多段線和單行文字、多行文字組成的表格輸出為EXCEL表格。 6、文字遞增 可以對序號、編號、數值進行遞增復制,間距、數量和增量均可隨心所欲地控制。 7、多段線布爾運算 可直接對封閉的多段線進行差并交計算,無需轉換面域,有時比修剪更簡便。 8、拼寫檢查(spell) 此功能實現對用戶輸入的單詞或文章進行單詞校驗,提示匹配的單詞列表,方便用戶進行正確的單詞填寫工作。可以實現不同語言的單詞校驗工作,包括英文,德文,等8種語言。 可以對全部實體(包括布局,模型中的所有實體)進行校驗。 可以分別對布局或模型中的實體進行校驗。 可以單獨對一個實體或一個選擇集進行校驗。 方便用戶自定義詞典。 兼容的自定義詞典。 支持文字,塊內文字,塊屬性,屬性,標注的校驗。 9、放樣(Loft) 通過對包含兩條或者兩條以上的橫截面曲線的一組曲線進行放樣(繪制實體或曲面)來創建三維實體或曲面。 10、塊屬性管理器(battman) 創建帶屬性的塊后,執行 battman 對塊中屬性定義進行查詢和修改,如果將修改應用到所有塊參照,則對應塊的塊參照中屬性實體也會做對應修改。 11、超級填充(superhatch) 超級填充命令有點像hatch命令,不同的是,可以使用該命令將光柵圖像、塊、外部參照和擦除這些實體作為填充實體對閉合區域進行填充。 12、線上寫字 可以在選擇線上書寫文字,線會被自動打斷,文字會放到線中間。 ◆ 重要功能改進 1、超鏈接 浩辰CAD 2012版的超鏈接不僅修改了以前存在的一些錯誤,而且提供了更為豐富的功能。 a)支持web鏈接的瀏覽和連接的設置。 b)支持打開操作系統可打開的所有文件。 c)支持dwg圖紙的視圖定位。 d)支持超鏈接的復制粘貼。 e)可以通過鼠標光標狀態來判斷是否存在鏈接,方便用戶判斷是否存在鏈接。 f)可以通過ctrl+鼠標點擊打開設置的文件,方便用戶的操作。 g)可以通過右鍵打開塊內實體的鏈接。 2、光柵圖像 浩辰CAD 2012版不僅增加了圖像格式的支持,同時提升了大分辨率光柵圖像的插入、顯示和打印的效果和速度。 a) 增加了對多種圖像格式的支持,諸如:CALS-1(*.cal,*.mil,*.rst,*.cg4)、RLC、GEOSPORT(.bil)、PICT(.pct/.pict)、IG4、Autodesk Animator(.fil/.flc)。 b) 內存使用問題,可以插入多張圖片,內存不會增加。 c) 光柵圖像打印問題(不清晰)。 d) 插入大圖像時,預覽速度大幅提升。 3、二次開發改進 浩辰CAD 2012版針對二次開發商和用戶提出的一些LISP及VBA與AutoCAD存在的兼容性問題進行了系統梳理,兼容性有明顯提升,此外還針對國外二次開發商的需求開發了Lisp調試器。 a) Lisp改進 處理了線程問題、命令范圍值問題、VLX解析問題,對Lisp程序執行速度進行了優化。 b) VBA改進 處理了VBA的文檔管理、接口不全、接口錯誤、類派生關系錯誤問題。 c) Lisp調試器 用戶在使用浩辰CAD時,由于LISP與AutoCAD不完全兼容,用戶需要一個工具進行調試,以協助用戶解決及分析報告LISP問題。此系統以完成調試功能為主,不處理詞法分析前的映射。適用于中級以上開發用戶。
上傳時間: 2013-11-24
上傳用戶:lepoke
很多使用CAD的朋友因為找不到自己需要的字體而煩惱,網上各種可供下載的CAD字庫也不少。之前我也將我收集的600多種字體上傳到百度網盤了,最近又下載了一個1000多種字體的字體庫。 不過發現一個問題:字體名可以隨便改,同一字體也可能有好多不同的版本。從下載的字體庫中就可以看到txt1\2\3\....等多種字體,這些字體到底有什么區別。hztxt.shx是國內使用很廣泛的一種字體文件,但這個文件我就見過多個版本,每個版本文件大小不同,字符顯示效果也不完全相同。因此要找到自己需要的字體說容易,也不容易,最保險的方法就是找到繪圖者使用的原始字體,到網上下載各種字庫都不是很保險。 不過我用過一個SHX字體查看工具,可以直接看到字體文件中的字符,給大家共享一下,但愿能給大家一些幫助。 利用SHX查看器,點“打開”按鈕,可以直接打開SHX文件,看到字體文件中包含的字符及字體效果,如下圖所示: 使用這個工具有下面三個用處: 1、在找到一個字體后,可以先用這個工具檢查一下,是否是自己所需要的字體,不要找到字體就盲目地復制到CAD的字體目錄下。 2、分別打開txt.shx、hztxt.shx、ltypeshp.shx這幾個形文件,可以了解一下字體、大字體和符號形文件里到底里面放了寫什么東西。 3、如果你想更深入了解字體,你可以將SHX在保存為字體源文件*.shp,這是一個純文本文件,你可以了解形文件的定義形式,如果你有興趣的話,甚至可以根據一些教程的指導自己來定義或修改字體文件。 cad字體查看工具SHX查看器注冊碼 Name: (Anything) s/n: sv89356241 Code: LLJL6Y2L
上傳時間: 2015-01-01
上傳用戶:Togetherheronce
不少使用CAD的朋友在找CAD填充圖案,附件是小編收集的近千種cad填充圖案打包,供CAD學習和使用者參考,希望對大家能有所幫助。以下是cad填充圖案使用說明。 CAD填充圖案使用說明: 1、將填充名改成自己比較容易識別的名稱,但要注意填充文件和填充名要完全一致(不用區分大小寫)。 我收集的這些填充圖案有些是中文名稱,很容易就知道填充圖案的類型。有些是英文名,本來我想將這些英文名都改成中文名的填充。 我可以提供大家方法。先用記事本打開其中一個填充文件,如下圖所示: 圖中打開的填充名為b043,文件名也必須為043,否則CAD是不認的。類似上圖所示的填充,如果希望CAD的填充列表中直接顯示中文,方便查找,你就需要先用記事本將PAT文件打開,復制“板巖”,選中b043,粘貼將其替換成“板巖”,關閉并保存文件。選中文件后單擊文件名進入重命名轉臺,選中前面的B043,CTRl+V粘貼,將"B043.pat"修改成"板巖.pat"。 修改的最終效果類似下圖所示的“六邊形蜂窩轉”填充。 2、不建議將所有收集的填充都一次性復制到CAD的填充目錄(patterns)下。 如果將大量填充都復制到CAD的填充目錄下,在填充時效率并不高,因為要在上千種填充中找出你要使用的填充,也不是一件簡單的事情。因此我建議不要做加法,而是應該做減法,將自己可能用到的填充保留,把根本不會用到的填充刪除。 對于這個壓縮包也是如此,當需要使用其中某種填充時,你再將填充拷過去。 3、如何在這么多填充圖案中找到自己需要的填充圖案。 由于有些填充圖案用的是英文名,可以分別通過文件名和包含文字來搜索你要找的填充名來判斷在這些填充中是否有你需要的填充。如果找到的是一個英文名稱的填充文件,你可以參照第一點中的方法進行修改,方便使用。
上傳時間: 2013-11-02
上傳用戶:lhw888
全新賽靈思(Xilinx)FPGA 7系列芯片精彩剖析:賽靈思的最新7系列FPGA芯片包括3個子系列,Artix-7、 Kintex-7和Virtex-7。在介紹芯片之前,先看看三個子系列芯片的介紹表,如下表1所示: 表1 全新Xilinx FPGA 7系列子系列介紹表 (1) Artix-7 FPGA系列——業界最低功耗和最低成本 通過表1我們不難得出以下結論: 與上一代 FPGA相比,其功耗降低了50%,成本削減了35%,性能提高30%,占用面積縮減了50%,賽靈思FPGA芯片在升級中,功耗和性能平衡得非常好。
上傳時間: 2013-12-20
上傳用戶:dongbaobao