發表文章

目前顯示的是 6月, 2012的文章

[TI]CCS4初次使用、舊版本匯入功能

圖片
一樣先來前言一番,雖然距離吃飯時間只剩下十五分鐘~~~     先前上課老師使用的是CCS 3.3 ,目的是因為有模擬器的功能(所以CCS 4以上版本沒有模擬器,一定要接硬體才能測試。個人覺得TI 28027這片USB的硬體比Microchip C30的好多了)。       那為何要更新CCS 4呢,因為CCS 3比需要裝在xp作業系統,而目前的筆電或電腦都搭配win7。在這學期前半段時間,我們都使用虛擬系統virtualBox或VMWare,做作DSP的運算使用模擬器還可以跑,但是後半段實際接硬體時,助教說虛擬系統USB會有供電不足的問題。所以只好換成在實體機器跑。     其實換成CCS 4也不是沒有好處,應該說好處更多(唯一的壞處就是沒有模擬器功能,必須一定要接硬體)。CCS 4的介面跟JAVA開發軟體eclipse很像,應該是CCS4拿Eclipse的架構來做成編輯器,所以長相一樣。在安裝CCS4的時候,如果你電腦裡面已經有eclipse的話,他會問你是否要將CCS4嵌入到原先系統有的eclipse中,但是千萬不要這麼做,有同學反應這樣會讓整個eclipse變得非常的複雜且難用。(我沒試過,但前車之鑑 何必呢~~~)     好~廢話講完~~要準備進入正題~~~可是剩6分鐘~~先上傳圖片 1.軟體安裝 省略!!軟體太大無法上傳,請直接跟我摳。 2.介面 啟動程式,在開始功能表中選擇TI/CCS4來啟動程式,如下圖 啟動後的畫面如下,請點選畫面右上方"Start using CCS" 主要介面如下 跟eclipse一樣都要設定Workspace 選擇Workspace路徑,路徑不要有中文 3.匯入CCS 3.3專案 先將專案資料夾複製到Workspace中,並選取視窗的工具列Project>>Import Legacy CCSv.... 選擇瀏覽按鈕 選擇Pjt檔( 注意:下圖有一個錯誤的示範,路徑必須要是英文的。下圖的路徑是中文將會出錯 ) 往下會有一些地方是中文路徑,都是錯誤的示範。(截圖截到後來才發現不能中文路徑,所以請多包涵) 再次提醒,路徑不能中文~~ 點選Finish完成匯入工作 4.專案設定 安裝助教給的標頭檔程式 安裝完成後,接下來

[VB.Net]Serialport 接收溢位 超過127 (7FH) 顯示 "?" 3FH 的錯誤解決方法

圖片
最近在寫dsPIC專題使用UART與電腦通訊,在程式上遇到了一個之前沒遇過的問題。 就是一般在通訊使用上接收回來的值都介於00H~7FH,由 80H 到 FFH 共 128 個字元,一般稱為『擴充字元』,這 128 個擴充字元是由 IBM 制定的,並非標準的 ASCII 碼。這些字元是用來表示框線、音標和其他歐洲非英語系的字母。 一般通訊設定Serialport時是不會設定Serialport.Encoding,而使用SerialPort1.ReadExisting()來接收資料。 在這個時候只要超過7FH的值都會被判斷為ASCII的?,解析成16進制就會變成3fH或十進制的63 從前的程式碼如下: '開啟PORT Private Sub btnOpenPort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenPort.Click SerialPort1.PortName = cmbPort.SelectedItem.ToString 'COMPORT Name SerialPort1.BaudRate = 9600 SerialPort1.Parity = Parity.None SerialPort1.DataBits = 8 SerialPort1.StopBits = StopBits.One SerialPort1.Open() '開啟串列埠 End Sub 'ASCII轉HEX(另外一篇有說明) Public Function AsciiStringToHexString(ByVal asciiString As String) As Array Dim ascii() As Byte = System.Text.Encoding.Default.GetBytes(asciiString) Dim count As Integer = ascii.Length Dim hexArray(count - 1) As String

[VB.Net]Ascii、十六進制互轉函式

Ascii與十六進制互轉函式 參考網址: http://www.dotblogs.com.tw/larrynung/archive/2010/01/06/12874.aspx ASCII要轉Hex,可透過ToString函式帶入"X2",或是用Hex函式。因此ASCII String轉Hex String可寫成: Public Function AsciiStringToHexString(ByVal asciiString As String) As String Dim ascii() As Byte = System.Text.Encoding.Default.GetBytes(asciiString) '註1 Dim count As Integer = ascii.Length Dim hexArray(count - 1) As String For idx As Integer = 0 To count - 1 hexArray(idx) = ascii(idx).ToString("x2") Next Return String.Join(" ", hexArray) End Function 註1:ASCII編碼部分要注意,這一段的程式使用的編碼方式僅能解00H~7FH,也就是十進位的0~127。在通訊傳輸的部分會造成溢位問題。 而Hex要轉ASCII,可在前面帶入"&h"字串,轉成int後再轉為char。因此Hex String轉ASCII String可寫成: Public Function HexStringToAsciiString(ByVal hexString As String) As String Dim array() As String = hexString.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries) For idx As Integer = 0 To array.Length - 1 arr

[VB.Net]取小數點X位數、無條件捨去

取小數點幾位數,這個比較簡單也比較常用 使用Format函式 Dim number As Double = 1234.56789 MsgBox(Format(number, "##.##")) 上列顯示出來的結果會是1234.57 表示說小數點後面的位數會依照規定取兩位數並做四捨五入的運算,而整數部分則有多少跑多少 但是又會出現一個Bug Dim number As Double = 0.56789 MsgBox(Format(number, "##.##")) 此時結果會是.57,而非0.57。 所以在此要修正成下列程式碼 Dim number As Double = 0.56789 MsgBox(Format(number, "0.##")) 上面的程式碼當寫Format(number, "0#.##")整數部分最小會是兩位,不足兩位的會補0。 ========================================================================================== 接下來講無條件捨去,目前我會用的方法 若要取小數兩位,則先乘上100然後取整數,在除100。這樣除完後會剛好小數點兩位,而沒有其他餘數。 VB.Net取整數的函式為Fix Dim number As Double = 1234.5678 MsgBox(Fix(number * 100) / 100) 這樣產生出來的結果為1234.56

[VBScript]Shutdows Application 關閉執行中的程式

前言: 這篇不適用於Indusoft,因為他媽的Indusoft不支援Wscript物件。 (此程式無須用到WScript.Shell) 此篇功能在於可以將工作管理員內的程式給關閉。 在此我們示範開啟多個小算盤,在工作管理員我們看到應用程式頁籤程式的名稱就叫做"小算盤",而在處理程序頁籤中叫做"calc.exe"。VBS程式碼如下: Set objShell = CreateObject("WScript.Shell") '這行沒用到 Set objWmi = GetObject("winmgmts:") 'calc.exe 是小算盤的程式名稱 strWmiq = "select * from Win32_Process where name='calc.exe'" Set objQResult = objWmi.Execquery(strWmiq) For Each objProcess In objQResult intRet = objProcess.Terminate(1) Next  應用此程式碼,不管你開啟幾個小算盤程式,他都會將其關閉。 參考網址: http://www.windowsitpro.com/forums/aft/39103 <---此篇應用版本 http://www.computerperformance.co.uk/vbscript/wmi_process_stop.htm <---複雜版 再次聲明:此程式碼不適用於IWS    可用於IWS

[VBScript]Open File Dialog 開啟檔案的對話方塊

圖片
前言: 最近在做專案時,需要使用到File Dialog來取得使用者要儲存的位置和檔名。 但在G大神搜尋到的都是使用UserAccounts.CommonDialog的方式,這個方式有個缺點(致命的缺點)就是只有Winxp才能使用。 後來才找到另外一個 MSComDlg.CommonDialog的方式,終於可以使用在Win7。但是它是使用comdlg32.OCX的ActiveX方式執行,所以必須要有此元件。這個元件呢,是只有安裝VB6或 vb6編譯完成的程式才可以(此物件除了系統註冊外還必須要授權)。(有在後面找到註冊的方法,但是必須要真的擁有vb6的軟體授權才能使用) 先來講解一下UserAccounts.CommonDialog的程式部分 ' Standard housekeeping Dim objDialog ' Create a dialog object Set objDialog = CreateObject( "UserAccounts.CommonDialog" ) ' Check arguments and use defaults when necessary 'If myDir = "" Then ' Default initial folder is "My Documents" ' objDialog.InitialDir = CreateObject( "WScript.Shell" ).SpecialFolders( "MyDocuments" ) 'Else ' Use the specified initial folder objDialog.InitialDir = "c:\" 'End If If myFilter = "" Then ' Default file filter is "All files" objD