

| Configuration Parameter | Selectable Option/Value | Description | 
| Timer group | 0--1 | Select timer group | 
| Module | 0--1 | Select timer module | 
| Timer pre-scaler | 2--4--8--16--32--64--128 | How quickly the timer’s counter is “ticking”. This set the divider, that will be used as a divisor of the incoming 80 MHz APB_CLK clock. | 
| Alarm mode | TIMER_AUTO_RELOAD_EN--TIMER_AUTO_RELOAD_DIS | Enable or disable auto-reload of the alarm. | 
| Interrupt interval (sec) | 
 | Select the interrupt interval in seconds | 
| Port Name | Date Type | Description | 
| ISR | Function-Call | ISR port will output a logic ‘true’ signal that could activate a function-call subsystem in Simulink. | 
This block can be used to set up an Interrupt Service Routine (ISR) that could be triggered by a built-in timer module in the ESP32.
The ESP32 chip contains two hardware timer groups. Each group has two general-purpose hardware timer(s). They are all 64-bit generic timers based on 16-bit pre-scalers and 64-bit up / down counters which are capable of being auto-reloaded. By default, the timer counter is set to 0 and is counted upwards. The alarm is also enabled by default while giving the user the ability to enable or disable auto-reload of the alarm.
Demo file : esp32_timer_interrupt_demo.slx

This example shows how to use the Timer interrupt block. In this model an interrupt service routine (ISR) is called at a 0.5-second interval. Within the ISR, a GPIO pin is toggled to indicate the interrupt call.
An oscilloscope should be connected to the GPIO pin specified in the model (in the example GPIO Pin 2 is selected.)
After the model file is compiled and uploaded to the ESP32 board, the following output can be seen on the oscilloscope.
