ทดสอบ GPIO และ การตั้งให้รับการ Interrupt จากภายนอก
วัตถุประสงค์
- สามารถ สร้าง interupt เมื่อมีการกดปุ่ม K1

RT-Thread GPIO คือ ระบบการจัดการและควบคุมขาพอร์ตอินพุต/เอาต์พุตทั่วไป (General Purpose Input/Output) บนไมโครคอนโทรลเลอร์ (MCU) ซึ่งเป็นส่วนหนึ่งของ ฮาร์ดแวร์ไดรเวอร์ (Hardware Driver) ในระบบปฏิบัติการจริงไทม์ RT-Thread
เป้าหมายหลักคือ ทำให้การควบคุมฮาร์ดแวร์ระดับล่าง (เช่น ตั้งค่าโหมดพิน, อ่านค่า, เขียนค่า) เป็นไปอย่างเป็นมาตรฐานและง่ายขึ้น
สิ่งที่ RT-Thread GPIO สามารถตั้งค่าได้:
-
1 กำหนดโหมดการทำงานของพิน (Pin Mode): เช่น ตั้งค่าเป็น Input, Output, Input Pull-up, Input Pull-down, Open-drain เป็นต้น
-
2 อ่านค่าจากพิน (Read): อ่านสถานะทางลอจิก (0 หรือ 1) จากพินที่ตั้งค่าเป็นอินพุต
-
3 เขียนค่าออกสู่พิน (Write): ตั้งค่าสถานะทางลอจิก (0 หรือ 1) ไปยังพินที่ตั้งค่าเป็นเอาต์พุต
-
4 จัดการการขัดจังหวะจากพิน (Interrupt): ตั้งค่าให้พินสามารถสร้างการขัดจังหวะ (Interrupt) เมื่อมีการเปลี่ยนแปลงสถานะ (เช่น เกิดขอบขึ้น - Rising Edge, ขอบลง - Falling Edge) ได้
Workshop 2 Setup Interupt
-
ขั้นตอน 1
-
ตั้งค่าคุณสมบัติของ GPIO ที่ต้องการใช้งาน ในที่นี้ คือการเลือกกำหนดให้แก่ K1 การกำหนดคุณสมบัติจะทำผ่าน โปรแกรม RA Smart Configurator (จะต้องติดตั้งให้เรียบร้อยก่อน) โดยให้ Double-Click ที่เมนู RA Smart Configurator เพื่อกำหนดค่าตำแหน่งที่เราติดตั้ง RA Smart Config เอาไว้
-
หลังการนั้นให้เลือก Folder
C:\Renesas\RA\sc_v2023-10_fsp_v5.1.0(คือ ตำแหน่ง folder ที่ติดตั้ง FSP)

-
ให้ทำการเลือก Folder ที่ได้กำหนดในขั้นตอนการติดตั้ง เมื่อทำการเลือก แล้ว จะเข้าสู่ Renesas smart Configurator tools
-
ให้รอสักครู่ จนกระทั้ง มีการแสดงผลดังรูปด้านล่าง
-
-
ขั้นตอน 2 ให้กด เลือกกดตามลำดับดังรูปที่ แสดง ด้านบน เป็นการ Config pin P907 ให้เชื่อมกับ IRQ10
ลำดับการเลือกกด
เป้าหมายต้องการคือ ใช้ RASC ทำการตั้งค่า pin หมายเลข P907 ให้ทำหน้าเป็น interrupt หมายเลข IRQ10
- 2.1 กดที่ Tab
Pinsตำแหน่งหมายเลข 1 เพื่อเปิดหน้าต่าง Pin configuration - 2.2 เลือก Tab
Pin Function - 2.3 เลือก InterruptIRQ
- 2.4 เลือก IRQ10
- 2.5 เลือกให้ IRQ10 ผูกกับ Pin หมายเลย
P907 - 2.6 ให้ไปยังส่วนของ Tab ด้านขวา คือ FSP Visualization กรอกชื่อ pin
P907 - 2.7 เลือกดู Pin Function เพื่อ verify
-
ขั้นตอนที่ 3 สร้าง Newstack
ลำดับการเลือกกด
- 3.1 กดที่ Tab
Stacks - 3.2 เลือก Tab
New Stack - 3.3 เลือก เมนู
Input-> External IRQ - 3.4 เลือก IRQ10
- 3.5 เลือกให้ IRQ10 ผูกกับ Pin หมายเลย
P907 - 3.6 ให้ไปยังส่วนของ Tab ด้านขวา คือ FSP Visualization กรอกชื่อ pin
P907 - 3.7 เลือกดู Pin Function เพื่อ verify

- เมื่อสร้าง Stack เรียบร้อยก็ให้กด ให้ ทำการ Double Click new stack ที่สร้างขึ้นใหม่ จะได้ Windows Proper ด้านล่าง
- ให้ทำการ Click บรรทัน Trigger เปลี่ยน จาก Rising เป็น Falling
- หลังจากตั้งเรียบร้อย ก็ให้ปู่ม ชื่อ
Generate Project Contentตามรูปด้านล่าง
- 3.1 กดที่ Tab
-
ย้ำให้ตั้งค่าให้ตรงตามนี้ นะครับ

-
ขั้นตอนที่ 4 ฺ Build Project
- 4.1 เลือก
Toolchian Versio>GNU Tools for ARM ...>13.2.1
Note
Location ของ Toolchain
C:\Renesas\RT-ThreadStudio\repo\Extract\ToolChain_Support_Packages\ARM\GNU_Tools_for_ARM_Embedded_Processors\13.2.1

- 4.2 แก้ไข Source code หลัก
hal_entry.c(อยู่ใน ตัวอย่าง /ex_01 folder นะครับ)
- 4.4 เข้าสู่ขั้น Build Project
- 4.5 เชื่อมต่อ USB-DBG ของ Board กับ Computer
- 4.6 ทำการกดปุ่ม Flash Download เพื่อ โปรแกรม Board
- 4.7 เปิด Terminal เพื่อเชื่อมต่อกับ Serial Monitor
ทดสอบ interrup โดยการกด ปุ่ม ตามรูปด้านล่าง

Screen Test Interrupt

