How can I set a timer?

When my character is jumping, I want the jump to delay half a second.
This is my code:

public void Jump()
{
    if (TP_Controller.CharacterController.isGrounded)
        VerticalVelocity = JumpSpeed;
}

void HandleActionInput()
{

    if (Input.GetKey(KeyCode.Space))
    {
        Jump();
    }

void Jump()
{
    TP_Motor.Instance.Jump();
}

public void Jump()
{
if (TP_Controller.CharacterController.isGrounded)
VerticalVelocity = JumpSpeed;
}

void HandleActionInput()
{
 
    if (Input.GetKey(KeyCode.Space))
    {
        StartCoroutine(DelayedJump());
    }
 
void Jump()
{
    TP_Motor.Instance.Jump();
}

IEnumerator DelayedJump () {
yield return new WaitForSeconds(0.5f);
Jump();
}