Preemptive Scheduling without time slicing

I have created three tasks Task1 , Task2, Task3

Task1 has highest priority 3,
Task2 has second highst priority 2
Task3 has third priority 1

Freertos Configurations:

#define configUSE_PREEMPTION 1
#define configUSE_TIME_SLICING 0
#define configTICK_RATE_HZ ((TickType_t )2000)

This means the FREERTOS tick happens every 0.5 milliseconds (500 microseconds).

Therefore:

1 tick = 0.5 ms (500 µs)

1 ms = 2 ticks

Now , First task - 1ms, First shoud trigger at every 1ms
Second task- 5ms Second Should trigger at every 5ms
Third Task - 10ms Third Task shoud trigger at every 10 ms

My question is, if my first task has taking more than Tick rate to execute
does it switch to the another task exact 1ms if i set config variables in freertos

#define configUSE_PREEMPTION 1
#define configUSE_TIME_SLICING 0

If I want to switch the tasks at exact tick rate even if my task has taking more than tick rate, what i need to do

Does anyone help me out

Did you already had a look at the docs Beginner's guides to FreeRTOS - FreeRTOS™
or FreeRTOS scheduling (single-core, AMP and SMP) - FreeRTOS™ … to get an idea about the principles ?
Also there is Customization - FreeRTOS™ explaining the FreeRTOS config items in detail.
Again, which information is missing ?
It’s also not really helpful to post basically the same question in varying new topics.

You really should read the documentation to understand how things work.

PREEMPTION means that a task can be interupted at any point if a higher priority task becomes ready.

TIME_SLICING means that every tick interrupt, if another task of the same priority is ready, you will switch between them.

Since all you tasks have different priority, TIME_SLICING will have no effect.

Task 1 being the highest priority means that while it is ready to run, it WILL be running, and only when it finishes and blocks for its next time to run, will the next priority task run.

For a fixed priority real-time system like FreeRTOS, it is a contradiction of terms to say that a higher priority task gets held of at some point to run a lower priority task.

@hs2 has already shared some good learning resources. This specific tutorial may also be helpful - Lab-Project-FreeRTOS-Tutorials/docs/tutorial_7/README.md at main · FreeRTOS/Lab-Project-FreeRTOS-Tutorials · GitHub.