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