Atmel UART: ¿usa interrupciones o implementación cíclica?

0

Quiero escribir un programa que intercepte la comunicación en serie entre dos microprocesadores. Por eso elegí el Atmega 162 con dos UARTS. Ahora quiero decidir si escribo el código usando interrupciones (lo que hace que las cosas sean más compiladas)

o simplemente de forma cíclica

  • leer de UART
  • datos de proceso
  • escribe a UART

Los paquetes tienen un tamaño fijo de 42 bytes en una línea y 12 bytes en la otra línea. Entre los paquetes individuales hay una brecha con ~ 1 ms.

La pregunta: ¿Está de acuerdo en utilizar la forma cíclica (fija) en lugar de la manera impulsada por interrupciones?

Hasta ahora no hay código, pero aquí puede encontrar la página del proyecto

    
pregunta Tom Schardt

2 respuestas

1

La respuesta a esto depende, en parte, de la cantidad de procesamiento que se esté realizando en el sistema, de qué procesador sea y qué tan rápido se está ejecutando el micro. Si no estuviera haciendo nada más que tomar datos en serie y duplicarlos, entonces posiblemente estaría bien.

Sin embargo, si está realizando una carga de procesamiento y existe la mínima posibilidad de que, antes de volver a sondear el UART, se hayan recibido más de un byte de datos, entonces debe hacerlo con interrupciones.

Argumentaría que las interrupciones no agregan tanta complejidad, al escribir en un búfer, completar la rutina de servicio de interrupción que se vacía y se procesa cuando el procesador tiene tiempo, no es tan complicado y regularmente es una parte vital de los dispositivos integrados. firmware

Creo que hay industrias como la industria nuclear y otras industrias críticas para la seguridad donde las interrupciones están prohibidas, pero aparte de eso, son una parte básica de la codificación y vale la pena aprender cómo implementarlas.

    
respondido por el DiBosco
1

Las interrupciones le ahorrarán un poco de tiempo de CPU que de otra manera pasaría ocupado esperando. Sin embargo, si la MCU no debe hacer nada más que bombear datos entre UARTS, perderá ese tiempo de todos modos ya que no hay otra cosa que hacer. Por lo tanto, si está seguro de que su MCU solo tendrá esta única tarea, es mejor que la programe para utilizar el sondeo.

    
respondido por el Dmitry Grigoryev

Lea otras preguntas en las etiquetas