Reinicie el contador del temporizador antes del desbordamiento en ATXMEGA64a1

1

Quiero restablecer el temporizador antes de la interrupción del temporizador.

En mi caso, usaré el protocolo Mod bus para el puerto serie. Tuve que restablecer el temporizador para cada byte enviado y enviar datos si el temporizador llega a 3.5 ts (Tiempo para enviar el byte). Significa que si no recibimos ningún byte hasta que (3.5s s) enviemos datos, si no, agregamos nuevos datos en el búfer.

Entonces, en este caso, quiero usar dos interrupciones:

  • Una interrupción para el puerto serie Rx. En esta interrupción restableceré el temporizador.
  • Una interrupción para el temporizador donde enviaré el búfer.
pregunta cherev

1 respuesta

0

Cada vez que reciba un byte, UART generará una interrupción. En ese ISR, puede reiniciar su temporizador para indicar que debe esperar un tiempo de 3.5 bits a partir de ahora.

Nunca utilicé este controlador especial, pero para restablecer el temporizador, puede escribir 0 en su registro de contador / contador O puede haber un bit a través del cual puede restablecer el temporizador. Al verificar la hoja de datos, si pudiera establecer el comando en RESTART , es decir, 10 en el registro de CTRLFSET , se reiniciará el temporizador.

Cada vez que reciba un byte, restablecerá el temporizador y, si no se recibe ningún byte en un tiempo de 3.5 bits, se generará la interrupción del temporizador y, a continuación, podrá iniciar la transmisión.     

respondido por el Swanand

Lea otras preguntas en las etiquetas