-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinterrupt_service_routine_in_python.py
More file actions
36 lines (30 loc) · 1.14 KB
/
interrupt_service_routine_in_python.py
File metadata and controls
36 lines (30 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import signal
import time
# Variable global para almacenar el tiempo antes de la interrupción
start_time = None
# Definir el manejador de la señal (ISR)
def manejador_temporizador(signum, frame):
global start_time
if start_time is not None:
# Calcular el delta_time y resetear start_time
end_time = time.perf_counter()
delta_time = end_time - start_time
print(f"Delta_time de la interrupción: {delta_time:.3f} segundos")
contador = 1
# print(f"Valor contador: {contador}")
# Reiniciar start_time para la próxima interrupción
start_time = time.perf_counter()
# Configurar la señal
signal.signal(signal.SIGALRM, manejador_temporizador)
# Configurar el temporizador de intervalo
signal.setitimer(signal.ITIMER_REAL, 0.01, 0.01)
try:
while True:
# Código principal de la aplicación aquí
contador = 0
# print(contador)
time.sleep(1) # Para mantener viva la ejecución del hilo principal
except KeyboardInterrupt:
# Detener el temporizador cuando el usuario presione Ctrl+C
signal.setitimer(signal.ITIMER_REAL, 0)
print("Temporizador detenido")