MF干活——C#點燈神話


    如同學習每一門編程語言的Hello World!一樣,點燈自然成了單片機入門的HelloWorld。因為單片機上的HelloWorld實在是太難了!
    在電子上只有電壓電流之類的概念,而對於單片機來說,我們可以認為0代表低電壓(低電平、接地),1代表高電壓(高電平)。在我們學習的STM32單片機上,高電平其實就是3.3伏!今天我們要點亮的小燈,就是發光二極管,讓3.3V和0V分別接在發光二極管的正負(長短)兩端,就可以讓其發光!
    我們采用的單片機有很多針腳(ZET6是144腳,VET6是100腳),一般是PA0~PA15,PB0~PB15這樣子命名。理論上,我們可以把任何一個腳設為高電平或者低電平,通過單片機程序。
    那么,接線上就有兩種了:一是二極管一頭接一個針腳Pin,另一頭接地GND腳,然后控制Pin高電平,就可以點亮;而是接兩個針腳,控制讓正腳(長)輸出高電平,負腳(短)輸出低電平,也可以點亮。
    如果用C寫這個控制程序,會有點小復雜,因為你需要先設置針腳的工作模式,上拉下拉什么的,然后才可以通過01控制高低電平。我們做C#開發的同學,絕大多數不懂這些。MF在這方面封裝得很好,針對指定針腳實例化一個輸出端口OutputPort,並指定初始狀態true/false,然后就可以讀寫布爾值了。當然,這個輸出端口也可以指定上拉下拉那種模式,但是如果我們不懂,就不用那個構造函數啦。
    一般的開發板上都配有LED,就不需要我們自己去接LED啦!如果想做跑馬燈什么的,可以自己去淘寶上買,一毛錢一個,10塊錢可以買一百個了,不過記得買杜邦線,哈哈!
    我們來看代碼:

// 紅牛二
//var pins = new Cpu.Pin[] { Pins.PF6, Pins.PF7, Pins.PF8, Pins.PF9, Pins.PF10 };
// 阿波羅一號
//var pins = new Cpu.Pin[] { Pins.PE11, Pins.PE12, Pins.PE13, Pins.PE14, Pins.PE15 };
// 探索者一號
//var pins = new Cpu.Pin[] { Pins.PB11 };
// 探索者二號
//var pins = new Cpu.Pin[] { Pins.PC6, Pins.PC7 };
// 雅典娜二號
var pins = new Cpu.Pin[] { Pins.PF8, Pins.PF9 };
// 雅典娜三號
//var pins = new Cpu.Pin[] { Pins.PF8, Pins.PF9 };
var leds = new OutputPort[pins.Length];
for (int i = 0; i < pins.Length; i++)
{
    leds[i] = new OutputPort(pins[i], i % 2 == 0);
}
//var led4 = new Led4();
for (int i = 0; i < 20000; i++)
{
    for (int j = 0; j < leds.Length; j++)
    {
        leds[j].Write(!leds[j].Read());
    }
    //led4.Display(i);
    //led4.Value = i;

    Thread.Sleep(50);
}
 

 

    這個程序很簡單,首先是實例化一個小燈所在的針腳數組,然后再創建輸出端口數組,創建的時候,隔個的設置不同的初始化狀態,造成小燈分開來亮的效果。
    每一次大循環,都包含一次小循環,而小循環所做的,就是讀出來針腳現在的值,取反后寫入。大循環需要暫停一會,要不太快了也看不清楚呀,呵呵!
    然后,小燈就閃動起來了!
    到這里,也許很多人會問,點亮小燈,頂多只能做跑馬燈之類的玩具而已。其實這個跟用C語言電燈一樣,我們只需要稍稍改變,針腳出來接的不是小燈,而是一個繼電器,那么就可以控制220v的強電了啦!剩下的就看自己要做什么了!
    本文可能非常簡單,但作為單片機的MF入門來說,並非每個人都可以做得到!
    MF是微軟的開源嵌入式系統框架,經過了很多年的發現,在國內一直很冷淡,可能是因為開發板極為昂貴並且移植困難吧!我們新生命團隊經過不懈努力,總算找到了相對比較便宜的MF開發板(淘寶200元左右),還有可以跑MF的核心板(淘寶最低售價只需要46元);並且我們掌握了一些基礎的移植技術,可以把 MF移植到比較熱門和高性價比的多款板子上去。我們歡迎更多志趣相投的朋友一起來研究MF!
    .Net Micro Framework,讓我們盡可能的在不懂單片機的情況下做一些簡單的單片機控制系統!
End


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM