Push/Pull Button to Turn ON/OFF LED via PDL
Lab104
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 ofTOOLCHAIN
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?