Push/Pull Button to Turn ON/OFF LED via PDL
Lab Objective:
In this lab, participants will utilize the Peripheral Driver Library (PDL) to interface with a push/pull button linked to the Infineon PSoC 6 microcontroller. The task will involve programming the microcontroller such that an LED's state is toggled between ON and OFF upon button actuation. This exercise is designed to provide participants with a deeper understanding of direct peripheral interactions, emphasizing the capabilities and advantages of using PDL for efficient and streamlined hardware control.
🔥 Requirements
🚩 Let start
Create Application
- 👉 Open Eclipse IDE ModusToolbox 

Enable Button and LED Pin


Coding
- Coding: Open the main.c file and add the following code to the main(void) function. 
int main(void)
{
    cy_rslt_t result;
    /* Initialize the device and board peripherals */
    result = cybsp_init() ;
    if (result != CY_RSLT_SUCCESS)
    {
        CY_ASSERT(0);
    }
    /* Enable global interrupts */
    __enable_irq();
    // Embedded systems to redirect the standard input/output (I/O) functions like printf() and scanf()
    cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX, CY_RETARGET_IO_BAUDRATE);
    printf("\x1b[2J\x1b[;H");
    for (;;)
    {
    	//Button is active low -> 0 is pressed and 1 is not pressed.
    	if(!Cy_GPIO_Read(CYBSP_USER_BTN_PORT, CYBSP_USER_BTN_NUM)){
    		Cy_GPIO_Clr(CYBSP_USER_LED1_PORT, CYBSP_USER_LED1_NUM); // Turn On LED
    		printf("Button Pressed --> LED ON \r\n");
    		Cy_SysLib_Delay(500U);
    	}
    	else{
    		Cy_GPIO_Set(CYBSP_USER_LED1_PORT, CYBSP_USER_LED1_NUM);
    		printf("Button not Pressed --> LED OFF \r\n"); // Turn Off LED
    		Cy_SysLib_Delay(500U);
    	}
    }
}Build the Application
- 👉 Build the Application 

Launching the Application
- 👉 Launching the Application - Before launching the program to the board, make sure that you have already connected the board to the computer through a USB cable. - set up USB cable 
- Launching Program 
  - Launching Program 
- 👉 Check the Result 

🎉 Congratulations! You can now complete Lab104
Supported toolchains (make variable 'TOOLCHAIN')
- GNU Arm® embedded compiler v10.3.1 ( - GCC_ARM) - Default value of- TOOLCHAIN
- Arm® compiler v6.16 ( - ARM)
- IAR C/C++ compiler v9.30.1 ( - IAR)
Supported kits (make variable 'TARGET')
- PSoC™ 62S2 Wi-Fi Bluetooth® pioneer kit ( - CY8CKIT-062S2-43012)
- PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit ( - CYW9P62S1-43438EVB-01)
- PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit ( - CYW9P62S1-43012EVB-01)
- PSoC™ 62S3 Wi-Fi Bluetooth® prototyping kit ( - CY8CPROTO-062S3-4343W)
Related resources
ModusToolbox™ Software Training
Other resources
Infineon provides a wealth of data at www.infineon.com to help you select the right device, and quickly and effectively integrate it into your design.
Document history
Document title: BILL_MTB-104 – GPIO-PDL Button with LED Template
1.0.0
Lab 104: Learn basic GPIO control with PSoC 6 using Push/Pull Button to Turn ON/OFF LED via PDL
Authors:
- Assoc. Prof. Wiroon Sriborrirux 
- Mr. Sriengchhun Chheang 
- Mr. Sabol Socare 
© BDH Corporation, 2022-2023
Last updated
Was this helpful?
