Hello World

วัตถุประสงค์

  • เข้าใจโครงสร้างโปรเจกต์ ModusToolBox (MTB)

  • เข้าใจ flow ของ main() ใน Embedded system

  • ควบคุม LED Blink ด้วย macro

จะได้เรียนรู้อะไร?

  • Project Structure: proj_cm33_s, proj_cm33_ns, proj_cm55

  • GPIO API: Cy_GPIO_Set(), Cy_GPIO_Clr(), Cy_GPIO_Inv()

  • Delay Function: Cy_SysLib_Delay()

  • Macro Definition: สร้าง LED control macros

ทำความเข้าใจโค้ด main.c

โค้ด main() ในตัวอย่าง Infineon จะมี pattern คงที่:

  1. Initialize board และ peripherals

  2. Enable global interrupt

  3. Initialize UART สำหรับ debug (printf)

  4. เข้า main loop ที่รันตลอดเวลา

แผนภาพการทำงาน


กำหนด delay ของ LED ด้วย macro

และใน main loop:


ทดลองสร้าง LED API (Best Practice)

โดยการเพิ่ม macro เพื่อให้โค้ดอ่านง่ายขึ้น:

แล้วเปลี่ยนใน loop เป็น:


Build และ Flash


Lab 1.2 : ทดลอง LED Blinking Patterns

Build และ Flash

GPIO Functions (PDL) Summary

Function
Description

Cy_GPIO_Set(port, pin)

Set pin HIGH

Cy_GPIO_Clr(port, pin)

Set pin LOW

Cy_GPIO_Inv(port, pin)

Toggle pin

Cy_GPIO_Read(port, pin)

Read pin (0 or 1)

Cy_GPIO_Write(port, pin, val)

Write 0 or 1

Hardware Info

Component
Macro
หมายเหตุ

User LED1

CYBSP_USER_LED1

Active HIGH

User LED2

CYBSP_USER_LED2

Active HIGH

✍️ Exercise:

  1. Double Blink : สร้าง pattern ที่ LED กระพริบ 2 ครั้งเร็วๆ แล้วหยุดนาน

  1. Heartbeat : สร้าง pattern เหมือนหัวใจเต้น (สั้น-ยาว-หยุด)

circle-info

Hint

ตัวอย่างใช้ for (;;)


Last updated

Was this helpful?