AVR開發 Arduino方法(一)埠子系統
Arduino UNO R3使用的主處理器ATMega328P上有3個8位的輸入/輸出埠,它們分別是PB,PC和PD。Arduino IDE提供的Blink示例可以幫助我們了解埠的數字輸出功能:
1 int led = 13;
2
3 void setup {
4 pinMode(led, OUTPUT);
5 }
6
7 void loop {
8 digitalWrite(led, HIGH);
9 delay(1000);
10 digitalWrite(led, LOW);
11 delay(1000);
12 }
這個示例使Arduino 13(PB5)引腳上的LED閃爍。與數字輸出相關的Arduino庫函數有:
pinMode(pin, mode):配置指定引腳為輸入或輸出
pin:指定引腳
mode:OUTPUT(輸出),INPUT(輸入)或INPUT_PULLUP(帶上拉電阻的輸入)
digitalWrite(pin, value):從指定引腳輸出電平
pin:指定引腳
value:LOW(低電平,0V),HIGH(高電平,5V)
ATMega328P的每個埠都由3個相關寄存器控制,方向寄存器DDRx(x = B, C, D)用於指定埠引腳方向,若向其中某位寫入1,則該位控制的引腳被設置為輸出,寫入0則為輸入。輸出寄存器PORTx(x = B, C, D)在該埠引腳被設置為輸出時,寫入1則輸出高電平,寫入0則輸出低電平;在該埠引腳被設置為輸入時,寫入1則對其啟用上拉電阻,即在該埠引腳被懸空時默認輸入高電平。輸入寄存器PINx(x = B, C, D)在埠引腳被設置為輸入時存儲該埠引腳的輸入,若埠引腳輸入高電平,則寄存器相應位被置為1,輸入低電平則置為0。
通過直接訪問寄存器改寫以上程序:
1 void setup {
2 DDRB |= (1 << PB5);
3 }
4
5 void loop {
6 PORTB ^= (1 << PB5);
7 delay(1000);
8 }
向電路中添加一個按鍵,讓它的兩端分別連接在Arduino 2(PD2)引腳和GND(地)引腳上(如下所示)。
這樣使得按鍵在沒有按下時2(PD2)引腳處於懸空狀態,因此需要將2(PD2)引腳設置為帶上拉電阻的輸入模式:
1 const int buttonPin = 2;
2 const int ledPin = 13;
3
4 int buttonState = 0;
5
6 void setup {
7 pinMode(ledPin, OUTPUT);
8 pinMode(buttonPin, INPUT_PULLUP);
9 }
10
11 void loop{
12 buttonState = digitalRead(buttonPin);
13
14 if (buttonState == HIGH) {
15 digitalWrite(ledPin, HIGH);
16 }
17 else {
18 digitalWrite(ledPin, LOW);
19 }
20 }
除了pinMode函數外,與數字輸入相關的Arduino庫函數有:
digitalRead(pin):從指定引腳上讀取電平
pin:指定引腳
函數返回LOW(低電平,0V)或HIGH(高電平,5V)
通過直接訪問寄存器改寫以上程序:
1 void setup {
2 DDRB |= (1 << PB5);
3 DDRD &= ~(1 << PD2);
4 PORTD |= (1 << PD2);
5 }
6
7 void loop {
8 if (PIND & (1 << PD2)) {
9 PORTB |= (1 << PB5);
10 } else {
11 PORTB &= ~(1 << PB5);
12 }
13 }
※spring boot 項目筆記2一自定義配置文件的讀取
※Linux常用命令——顯示文件列表
※es6系列教程-函數的默認參數詳解
TAG:達人科技 |
※受AlphaGo啟發,AI重建量子系統新方法登上Nature Physics
※jQuery UI API 類別-方法(Methods)
※jQuery UI API 類別-方法重載(Method Overrides)
※jQuery UI 小部件(Widget)方法調用
※CodeWarrior IDE使用Tips-使用burner將elf文件轉換生成HEX和BIN文件的方法和步驟詳解
※撲朔迷離的黑色版本OFF-WHITE x Nike Air Force 1迎來官方發售!入手方法告訴你!
※JSON編程的parse() 方法
※Ray Dalio的思考方法
※DeepMind於Nature子刊發文提出非對稱博弈的降維方法
※Acta Neuropathol Commun:科學家們開發出診斷神經退行性疾病的新方法
※Unit 5 Geophysical Methods of Exploration 地球物理勘探方法
※Whelen案例,六西格瑪設計DMADV方法
※MyBatis使用筆記——原始方法開發dao層
※RED VELVET節目公開吵架解決方法!成員大讚Irene隊內和平維持者
※python開發利器,python shell和vim中都需要的tab補全方法
※解決Electra越獄顯示Error:topanga錯誤的方法!
※iPhone X 添加Hoem鍵方法簡單方便!
※iPhone iOS 9系統源碼已被泄露至GitHub 越獄者或可找到新方法
※SOS大逃殺無限卡loading解決方法
※蘋果iPhone打開簡訊iMessage就死機怎麼辦?附解決方法