XMEGA384C3 ISR load

0

Estoy usando un XMEGA384C3 a 32MHZ en un diseño con dos USARTS. Ambos recibirán datos cada 150 ms aproximadamente y utilizarán un protocolo que contiene un CRC16. En mi USART recibe ISR, hago mi protocolo de decodificación, pero no me atrevo a hacer el CRC16 dentro del ISR. ¿Esto es demasiado sobrecarga en un ISR? Estoy tratando de averiguar dónde debo hacer el CRC16 check / calc que no tomará mucho tiempo.

    
pregunta zacharoni16

1 respuesta

2

Puede realizar un perfil del cálculo de CRC y asegurarse de que se demore un tiempo de transferencia de menos de 1/2 byte para el paquete más largo que enviará. Si tarda más de 1/2 byte, entonces podría tener problemas si lo hace en el ISR de UART.

Mi recomendación sería usar el ISR de UART solo para colocar los bytes recibidos en colas y luego hacer la decodificación a nivel de paquete en un ISR de temporizador periódico, configurando el ISR de UART en un nivel de prioridad más alto para que no se caiga. bytes

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas