此範例主要進行 GPIO Input輸入測試,其動作為,當按下按鈕後LED ON,否則 LED OFF。

 

電路:

以下介紹 GPIO PINxn、 DDxn、PORTxn  Register 使用方法,以PA接腳為例。

 

DDRA:

DDRA 為 8 bit的 Register,其對應到 PA0 到 PA7,當DDRA當中的 Bit 設為 1 時該接腳為 Output ,設為 0 時該接腳為 Input

 

PORTA:

PORTA 為 8 bit的 Register,其對應到 PA0 到 PA7,當該接腳 DDRA Register 設為 1 (該接腳為 Output),寫入 1 時,該接腳為 High ,寫入0 時該接腳為 Low

 

PINA:

PINA為 8 bit的 Register,其對應到 PA0 到 PA7,當該接腳 DDRA Register 設為 0 (該接腳為 Input),讀取為 1 時,該接腳為 High ,讀取為0 時該接腳為 Low

 

程式:

#include <avr/io.h>

 

int main(void){

   

DDRA=0x1; //設定 PA0 為 OUTPUT

   DDRC=0x00;//設定 PC0 為 INPUT ,此行程式碼可以省略

   while(1){

if(PINC & 1) //當PINC AND 1 等於 False 時,按鈕按下

PORTA = 1<<PA0; //LED OFF

else

PORTA = 0<<PA0; //LED ON

}

return 0;

}

 

arrow
arrow
    全站熱搜

    iammic 發表在 痞客邦 留言(0) 人氣()