2012-05-28 66 views
2

我一直在尋找一些關於微控制器編程的信息,但是我發現的信息無論是在我頭上還是似乎都不存在。我正在尋找更容易消化的東西!我對編程相對比較陌生,來自SQL DBA背景,並且決定我學習一些編程基礎知識,然後自學Delphi,比通過我公司瘋狂的設計變更記錄系統實現一些變更更快! 經過幾年的Delphi編程,我可以應付寫入數據庫應用程序而沒有太多麻煩,我希望能夠在一個層面上移動。 我們在我們的PCB上使用PIC微控制器;主要是PIC18F系列。 PICS上的軟件是用C語言編寫的,但有一些參數值由Delphi應用程序寫入,該應用程序使用ActiveX控件與PIC進行接口連接。 基本上,SQL數據庫保存參數信息,Delphi客戶端應用程序檢索這些值,並將它們傳遞給執行PIC上所有低級別內容的ActiveX控件。例如,內部EEPROM將具有地圖,並且在任何特定地址內將存儲值以開啓或關閉某些東西或保持整數值等。我已經掌握了具有可讀取ICD2器件的MPLAB工具包並將值寫入內部EEPROM,並瞭解如何使用MPLAB軟件更改這些十六進制值。 我的希望不是學習嵌入式單片機編程;相反,我可以編寫一個Delphi應用程序來執行類似於MPLAB軟件的操作。例如,讀取和寫入EEPROM中某些存儲器地址的值。 如果任何人都可以指向任何庫或組件的正確方向,可能已經存在橋接簡單的Delphi表單應用程序和編寫低級別PIC EEPROM之間的差距,那麼我會非常樂意。我懷疑這種簡單的界面存在,但我想我會問。總結一下,我希望能夠擁有一個簡單的表單應用程序,包含用戶鍵入或從下拉框中選擇的一些編輯框,參數值,單擊按鈕並將這些參數值分配給特定的EEPROM存儲器地址。感謝您的閱讀,並會收到任何意見。德爾福微控制器編程

問候

KD

+0

您打算如何通過將高層系統(PC)的接口設置爲如此低級別的接口來實現? (直接寫入EEPROM地址。)通常的技術是將這些細節提取出來,並提供適合實際功能的高級界面(打開LED,關閉LED等)。 –

+0

icd 2使用usb,而usb hid模式在[link]中討論http://stackoverflow.com/questions/6271421/using-hidcontroller-on-delphi-2010 [/ link]。 – Hendra

+0

順便說一下,你說'... PICS上的軟件是用C編寫的,但是有一些參數值是由一個Delphi應用程序寫入的,該應用程序使用一個ActiveX控件與PIC進行交互。如果是這種情況,可以重新使用activex控件(即組件 - >從Delphi iDE導入ActiveX組件),並在Delphi應用程序中使用它。我猜低層次的通信內容已經處理了activex控件? – Hendra

回答

0

德爾福輸出Win32和Win64的本地應用程序,你可以寫軟件,它可以與某些設備進行交互,如果PCB具有串行通信或I2C可以編寫軟件,在德爾福它將互動與物理設備。

但是,如果你想自己編程設備,編寫在這些設備上運行的軟件,你不能用Delphi來完成。我建議你購買Arduino,這對於微控制器編程初學者來說是一個非常好的選擇。

+0

PS - 只有Delphi XE2(和未來版本)支持64位編譯。 –

2

更新2015年答:

爲什麼不Raspberry Pi with FreePascal and Lazarus?截至目前,這些板卡的價格從5美元到25美元不等,開發工具也是免費的。

原2012答案: 如果你喜歡用Pascal中,你會發現免費帕斯卡爾在小型嵌入式系統是有用的,但最小,我相信你會發現它可以編譯上是一個基於Linux的ARM嵌入式系統。事實上,你使用雙方pascal是不太可能幫助你完成任何重大事情。

如果你想要一路走下最小的PIC微控制器,你會發現它幾乎總是你將要使用的C的變體。坦率地說,在這個層面上,差異並不大。如果你可以寫Pascal,你可以在一天內學習足夠的C,以便與微控制器一起使用。

不要害怕使用大多數微控制器支持的本地語言。我個人最喜歡的是以前來自Z-World的Rabbit微控制器,現在來自digi--我認爲我爲第一塊電路板和開發工具包支付了大約100美元。我想通過有線以太網或無線(Wifi)接口使用TCP/IP來連接這樣的應用程序,這很容易。但如果你真的想要你可以使用RS-232或RS-485串行鏈路。 (RS-485的優點是可以連接長達5英里)。如果我使用的是串行鏈路,那麼如果我只是想發回一些數字數據,我可能會在兩側實現類似Modbus的功能,如果我正在做一些面向文本的事情,我想我會在嵌入式控制器上編寫一個迷你HTTP Web服務器,而且現在大多數電路板都帶有足夠的HTTP服務器演示程序,以便讓這種簡單的工作變得簡單。

+0

ModBus使用9位數據。德爾福可以處理嗎?是否有(免費)VCL組件是必需的?還是9位串口的驅動程序? – Mawg

+1

你的另一個問題是關於東西,絕對不是MODBUS。 HTTP://計算器。com/questions/14212660/how-to-access-my-9-data-bit-serial-port-on-a-pc –

+1

讀到你的另一個問題,我相信你會更好找到一個外部硬件,從極端ODDBALL EIA = 485/MDB「9位」模式轉換。只有瘋狂的供應商才能使用這種瘋狂的安排,纔會知道從哪裏得到如此瘋狂的硬件。決定使用9位模式作爲自動售貨機通信系統的MDB工程師應該遭到槍擊和冒犯,並且讓他的名字受到譴責。 –

0

如果您有PIC微控制器的源代碼,那麼您可以在C中實現代碼以從Serial,USB或硬件中提供的其他某個接口讀取數據,並將其寫入eeprom。這種方式很容易在任何高級語言如delphi,C++等編寫應用程序。

或者你可以使用mikroeletronika的mikropascal編譯器編寫你的PIC應用程序,它非常好,我已經使用了很長時間時間,但正如你所看到的,你必須實現一些機制來從界面讀取數據並寫入你的eeprom,正如我之前提到的那樣。

該編譯器附帶一大堆圖書館,可與許多設備配合使用。你應該看看它,它不是免費的,但價格很低,在他們的網站上你可以找到樣品和樣板來測試它。

0

如果你想要一個簡單的接口寫入PIC EEPROM,一個選擇就是使用ICD命令行工具。不幸的是,它不適用於ICD2,但PICkit 2和3(價格便宜),ICD3和RealICE具有命令行實用程序,使您可以寫入EEPROM(谷歌pk2cmd)。在Delphi中,您可以將一組非常簡單的命令行調用包裝到pk2cmd中。

2

我是MikroElectronika的忠實粉絲,他們用PIC16系列MCU的Pascal工具取得了巨大的成功(觸摸屏界面,ZigBee,...)。 http://www.mikroe.com/

+0

不錯,但Pic或AVR pascal編譯器的價格是250美元。太糟糕了,沒有PIC和AVR的開源Pascal。當然,與德爾福相比,這很便宜,但實際上相比於250美元的盒子來說,它實際上相當昂貴。 –

+0

「下載並試用軟件 - 免費!軟件配備了功能齊全的演示許可證,輸出代碼大小爲2K的程序字,可以滿足簡單的應用需求。」誠然,我確實最終購買了他們的完整開發板之一,因爲我的早期應用程序之一(zigbee無線競賽計時系統)需要超過2k大小的免費版本。 –

+1

這些天,我想我會買5美元的美國樹莓派Pi板之一,並使用FreePascal。 –