1 / 20

GPIO 實驗

GPIO 實驗. 瞭解 S3C2410X 的 I/O 口特性 實現 4 個 LED 的跑馬燈控制. S3C2410X 的 GPIO 簡介. S3C2410X 有 117 個複用功能輸入 / 輸出埠接腳。 這些接腳是: ——Port A(GPA) : 23 個 輸出埠 ——Port B(GPB) : 11 個輸入 / 輸出埠 ——Port C(GPC) : 16 個輸入 / 輸出埠 ——Port D(GPD) : 16 個輸入 / 輸出埠 ——Port E(GPE) : 16 個輸入 / 輸出埠 ——Port F(GPF) : 8 個輸入 / 輸出埠

didier
Download Presentation

GPIO 實驗

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GPIO實驗 瞭解S3C2410X的I/O口特性 實現4個LED的跑馬燈控制

  2. S3C2410X的GPIO簡介 • S3C2410X有117個複用功能輸入/輸出埠接腳。 • 這些接腳是: • ——Port A(GPA):23個 輸出埠 • ——Port B(GPB):11個輸入/輸出埠 • ——Port C(GPC):16個輸入/輸出埠 • ——Port D(GPD):16個輸入/輸出埠 • ——Port E(GPE):16個輸入/輸出埠 • ——Port F(GPF): 8個輸入/輸出埠 • ——Port G(GPG):16個輸入/輸出埠 • ——Port H(GPH):11個輸入/輸出埠

  3. S3C2410X的GPIO簡介 • 每一個埠都可以有軟體設置來滿足各種系統配置和設計需求。 • 在啟動程式之前必須定義每個接腳的哪個功能。 • 如果接腳沒有配置為複用功能,這個接腳被配置為I/O埠。

  4. 埠配置器(GPACON-GPHCON) • 在S3C2410X中,大部分的接腳是複用的。所以,對於每個接腳要求定義一個功能。埠控制暫存器(PnCON)定義每一個接腳的功能。 • 如果GPF0-GPF7和GPG0-GPG7在斷電模式下被用做喚醒信號,這些埠必須在中斷模式下被設置。

  5. 埠資料暫存器(GPADAT-GPHDAT) • 如果埠配置為輸出埠,資料能被寫到PnDAT對應的位置。 • 如果埠配置為輸入埠,能從PnDAT對應的位元中讀出資料。

  6. 埠提升暫存器(GPBUP-GPHUP) • 埠提升暫存器控制著每個埠組的提升暫存器的致能或禁止。 • 當對應位為0,這個接腳的提升暫存器是允許的。 • 當為1時,提升暫存器是禁止的。

  7. MISCELLANEOUS控制暫存器 • 這個暫存器控制資料埠的提升暫存器﹑高阻抗狀態﹑USB通道以及CLKOUT的挑選。 • 外部中斷控制暫存器(EXTINTN) • 24個外部中斷由多種方式來請求。EXTINTn暫存器可以配置外部中斷的請求信號的觸發方式為低電壓觸發,高電壓觸發,下降觸發,上升觸發以及雙邊觸發。

  8. 本實驗涉及到的I/O埠暫存器介紹 • 在本實驗中,由埠GPF4~GPF7控制4個LED指示燈。 • 主要涉及埠F的控制暫存器,GPFCON,GPFDAT和GPFPU。

  9. 埠F的暫存器位址和位定義

  10. 埠F配置暫存器(GPFCON)

  11. 埠資料暫存器1(GPFDAT) 提升暫存器(GPFUP)

  12. 4個LED指示燈的介面電路 電阻用於限制電流

  13. 相關函數說明 • #define rGPFCON (*(volatile unsigned *)0x56000050) • #define rGPFDAT (*(volatile unsigned *)0x56000054) • #define rGPFUP (*(volatile unsigned *)0x56000058) • #define LED1_ON() (rGPFDAT &= ~0x10) • #define LED2_ON() (rGPFDAT &= ~0x20) • #define LED3_ON() (rGPFDAT &= ~0x40) • #define LED4_ON() (rGPFDAT &= ~0x80) • #define LED1_OFF() (rGPFDAT |= 0x10) • #define LED2_OFF() (rGPFDAT |= 0x20) • #define LED3_OFF() (rGPFDAT |= 0x40) • #define LED4_OFF() (rGPFDAT |= 0x80)

  14. 主函數Main • void Main() • { • rGPFCON=0x5500; /*設置I/O口GPF7~GPF4為輸出屬性*/ • rGPFUP=0xffff; /*禁止GPF埠的提升*/ • while(1) /*跑馬燈 */ • { • LED1_ON(); //LED點亮/熄滅狀態設置 • delay(0x2ffff); • LED2_ON(); //LED點亮/熄滅狀態設置 • delay(0x2ffff); • LED3_ON(); //LED點亮/熄滅狀態設置 • delay(0x2ffff); • LED4_ON(); //LED點亮/熄滅狀態設置 • delay(0x2ffff); • LED1_OFF(); //LED點亮/熄滅狀態設置 • delay(0x2ffff); • LED2_OFF(); //LED點亮/熄滅狀態設置 • delay(0x2ffff); • LED3_OFF(); //LED點亮/熄滅狀態設置 • delay(0x2ffff); • LED4_OFF(); • delay(0x2ffff); • }

  15. 點選LED範例led.mcp

  16. 工作視窗

  17. 秀出主程式

  18. 產生led.bin

  19. 載入led.bin

  20. 觀察D11、D12、D13、 D14

More Related