LAB101_GPIO HAL LED Bilnk Template

#include "cy_pdl.h"
#include "cyhal.h"
#include "cybsp.h"
#include "cy_retarget_io.h"
# PRESENTING CODE

#include "cy_pdl.h": เป็นการเรียกใช้ Peripheral Driver Library (PDL) ของ Cypress, ที่ให้การเข้าถึงและควบคุมต่างๆ
#include "cyhal.h": เป็นการเรียกใช้ Hardware Abstraction Layer (HAL) ของ Cypress, ที่ให้บริการการใช้งานต่างๆ ที่เกี่ยวข้องกับฮาร์ดแวร์.
#include "cybsp.h": เป็นการเรียกใช้ Board Support Package (BSP) ของ Cypress, ที่ให้การสนับสนุนและกำหนดค่าต่างๆ .
#include "cy_retarget_io.h": เป็นการเรียกใช้ Retarget I/O library ของ Cypress, ที่ให้บริการฟังก์ชันสำหรับการส่งข้อมูลผ่าน UART.

 

 

LAB101_GPIO HAL LED Bilnk Template

int main(void)
{
    cy_rslt_t result;
    result = cybsp_init();
    if (result != CY_RSLT_SUCCESS)
    {
        CY_ASSERT(0);
    }

    result = cyhal_gpio_init(CYBSP_USER_LED, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, CYBSP_LED_STATE_OFF);
    if (result != CY_RSLT_SUCCESS)
    {
        CY_ASSERT(0);
    }

    result = cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX, CY_RETARGET_IO_BAUDRATE);
    if (result != CY_RSLT_SUCCESS)
    {
        CY_ASSERT(0);
    }

    __enable_irq();
# PRESENTING CODE

main(void): เป็นฟังก์ชันหลักของโปรแกรม, ที่ทำหน้าที่เริ่มต้นการทำงานของโปรแกรม.

 cy_rslt_t result;: เป็นตัวแปรที่ใช้เก็บผลลัพธ์จากการเรียกใช้ฟังก์ชัน.

cybsp_init(): เรียกใช้เพื่อเริ่มต้น Board Support Package (BSP)

 cyhal_gpio_init(): เรียกใช้เพื่อกำหนดค่าและเริ่มต้น

GPIO. cy_retarget_io_init(): เรียกใช้เพื่อเริ่มต้น Retarget I/O library.

cyhal_gpio_write(): เรียกใช้เพื่อเขียนค่า (ON/OFF) ไปที่ GPIO.

cyhal_system_delay_ms(): เรียกใช้เพื่อทำการหน่วงเวลา (delay) ในหน่วย millisecond.

printf(): เรียกใช้ฟังก์ชันสำหรับการพิมพ์ข้อความ.

ลูปการทำงาน: for (;;) ในส่วนท้ายของ main เป็นลูปที่ทำงานอยู่ตลอดเวลา, ทำการสลับสถานะของ LED ระหว่าง ON และ OFF ทุก 5 วินาที พร้อมทั้งพิมพ์ข้อความ "LED ON" หรือ "LED OFF" ผ่าน UART.

การใช้งาน Debugging: __enable_irq(): เป็นฟังก์ชันที่เปิดใช้งาน interrupt.

Code

By anaphat

Code

  • 102