相關(guān)商品

  • 基于Arduino 互動電子套件 23節(jié)經(jīng)典實驗 UNO R3新版
  • 愛上Arduino 互動入門套件 中文教材配套 教學(xué)視頻 UNO R3
  • 基于Arduino 互動電子積木套件 arduino UNO R3開發(fā)實戰(zhàn) 愛上制作
  • Arduino Prototype Shield 原型擴展板 萬用板(含Mini面包板)
  • Arduino MEGA ProtoShield V3 原型擴展板 萬用板(含面包板)
  • Arduino Leonardo 萊昂納多控制器 原裝進口
  • Arduino RP5履帶機器人 尋線避障DIY套件 電子競賽 機器人教學(xué)
  • Arduino 繼電器擴展板 Relay Shieldv2.0 支持xbee控制 4路繼電器
  • 1602液晶擴展板 v2.0 Arduino LCD 1602 Keypad Shield
  • Arduino 4WD移動機器人平臺 鋁合金小車(金色) 電子大賽
  • 奧松機器人 MQ2氣體傳感器 Arduino煙霧甲烷氣體檢測 正品保證
  • Arduino傳感器 HMC5883L 數(shù)字電子羅盤 智能小車 機器人配件
  • Arduino UNO R3 控制器 ATmega328P-PU+ATmega16U2 arduino 原裝進口
  • 原裝進口 Arduino Mega ADK 2560 開發(fā)板 Arduino uno R3 控制器
  • 奧松機器人 Arduino UNO R3 V5.0傳感器擴展板 電子積木 正品保障 傳感器套件專配 單片機開發(fā)
  • Arduino MEGA Sensor Shield V2.0 專用傳感器擴展板 電子積木
  • Arduino 紅外無線遙控套件 紅外遙控 紅外解碼 電子積木
  • Arduino 水位傳感器 液面高度 Water Sensor 水分 液滴 水深檢測
  • 奧松機器人 4WD鋁合金移動小車 Arduino開發(fā)平臺 編程玩具 新品
  • Arduino 越野履帶機器人 路虎5 Rover小車 2驅(qū)2碼盤測速 電子大賽
  • Arduino 越野履帶機器人 路虎5 Rover小車 4驅(qū)4碼盤測速 電子大賽
  • 8段數(shù)碼管 紅色高亮共陰 愛上Arduino 互動入門套件 電子元件
  • 優(yōu)質(zhì)電解電容 25v/220uf Arduino實驗元件 電腦主板 高壓板高頻
  • 單向傾角開關(guān) 傾角傳感器 Arduino 實驗常用 電子元件
  • LED 發(fā)光二極管 5mm 高亮 紅色 (5只) Arduino互動電子元件
  • 干簧管 俄羅斯進口 愛上Arduino 互動入門套件 電子元件 磁控開關(guān)
  • Arduino 小車 2WD套件D版 UNO R3套件 尋線避障套件 電子競賽
  • IRF520 晶體管 愛上Arduino 互動入門套件 電子元件 全新原裝
  • 繼電器 3A/250VAC 3A/30VDC Arduino 實驗常用電子元件
  • Arduino ATtiny2313-20PU USBtinyISP v3.0 下載器專用 芯片
  • Arduino 機器人專用輪子 直徑65mm 1:10 智能車輪 六邊形孔 車輪
  • Arduino 傳感器連接線公頭 引腳排針 間距2.54 一排40pin
  • Arduino 大按鈕模塊(紅色) 電子積木 碰撞開關(guān) 機器人配件
  • Arduino 傳感器連接線公頭 間距2.54 引腳排針(加長)
  • 愛上 Arduino RGB Monome 全彩LED 三色led 多色 RGB共陰 LED燈
  • Arduino M3×8+6 銅柱 10套裝
    Arduino M3×8+6 銅柱 10套裝 本店售價:¥3.50
  • Arduino從基礎(chǔ)到實踐 Beginning Arduino 從零開始 初學(xué)提高
  • Arduino技術(shù)內(nèi)幕 Arduino Internals 語法精通 實戰(zhàn)讀本
  • 4WD機器人調(diào)試助手v2.0軟件 智能小車 Arduino 履帶 WiFi藍牙小車
  • 當(dāng)前位置: 首頁 > 應(yīng)用教程 > 【創(chuàng)客學(xué)堂】NO pinMode!教你使用bitSet函數(shù)提高程序空間利用率

    【創(chuàng)客學(xué)堂】NO pinMode!教你使用bitSet函數(shù)提高程序空間利用率

    編輯:Peter2013-08-01 130708050@qq.com 瀏覽次數(shù):1578

        使用Arduino我們可以做出很炫的作品,因為在Arduino語法中,枯燥的底層代碼都被封裝成了一個個的現(xiàn)成的函數(shù),我們只需要調(diào)用即可??墒?,小編認為我們還真的需要了解一些底層的知識,因為這樣可以將我們編寫的語句被有效的轉(zhuǎn)換為機器碼,提高Arduino控制器有限的程序空間的利用率。在這里小編通過本文簡單的介紹一下如何有效的使用Arduino語句,我們先通過下面兩幅圖片比較一下,

     

    使用pinMode函數(shù)編譯后代碼的大小為1116字節(jié)

     

     

      圖一 使用pinMode函數(shù)編譯后代碼的大小為1116字節(jié)

     

    使用bitSet函數(shù)編譯后代碼的大小982字節(jié)

     

    圖二 使用bitSet函數(shù)編譯后代碼的大小982字節(jié)

     

        通過上面的兩幅圖片我們可以清楚的看到,使用bitSet函數(shù)代替pinMode函數(shù)之后——代碼變少了,整整少了134字節(jié)——這僅僅是一條語句的替換,如果是5條、10條的語句替換,那么節(jié)省量就可觀了。

        究其原因只是因為在Arduino語法中,bitSet函數(shù)僅是一個宏替換語句,而不像pinMode函數(shù)大篇幅的函數(shù)定義(有興趣的讀者可以自己查閱pinMode函數(shù)的原型)。想要使用bitSet函數(shù)做到這一點,我們還需要了解一下硬件的知識:在AtmelAVR中,每個I/O口的狀態(tài)是由對應(yīng)的數(shù)據(jù)方向寄存器里的“位”配置的,以Arduino UNO為例,數(shù)字引腳13對應(yīng)的就是PB5(即DDRB,5);而在Arduino Mega 2560中,相對應(yīng)就是PB7(DDRB,7)。所以,如果我們想改變某個I/O口的輸入輸出狀態(tài),只需要改變與其對應(yīng)的寄存器里的“位”即可。

       還有就是給大家介紹關(guān)于一本學(xué)習(xí)Arduino的書和博客供大家學(xué)習(xí)參考。

     

    愛上Arduino:

    http://m.lifestyle201.com/goods-193.html

     

    Arduino電子設(shè)計實戰(zhàn)指南零基礎(chǔ)篇:

    http://m.lifestyle201.com/goods-394.html

     

    Arduino從基礎(chǔ)到實踐BeginningArduino從零開始:

    http://m.lifestyle201.com/goods-393.html

     

    Arduino愛好者Rebecca的博客:

    http://blog.sina.com.cn/arduino

    • 用戶評價

    暫時還沒有任何用戶評論

    總計 0 個記錄,共 1 頁。 第一頁 上一頁 下一頁 最末頁
    用戶名: 匿名用戶
    E-mail:
    評價等級:
    評論內(nèi)容:
    驗證碼:
    captcha

    Hi,大家好,我是小奧!

    歡迎來到奧松機器人的世界!

    需要咨詢服務(wù)請點小奧哦!

    • 銷售咨詢: 銷售咨詢
    • 銷售咨詢: 銷售咨詢
    • 技術(shù)支持: 技術(shù)支持
    • 咨詢電話:
      0451-86628691
    Top