La salida de ATmega128 compara el modo normal. Generando una forma de onda con ISR

0

Así que aquí están las especificaciones: -presorador de 8 -Canal A -pulse_width está determinado por los grados definidos por el usuario (convertidos en tics de reloj) -pulse_period es 40000 tics de reloj (20ms) -Modo normal -Timer3

Así que tenemos un move_servo (grados sin firmar) donde todo lo que hace es convertir los grados en tics de reloj y almacenarlo en pulse_width. Ok no hay problema.

Entonces necesitamos ISR (TIMER3_COMPA_vect). Se supone que esta interrupción realmente genera la forma de onda donde pulse_width sería alto y (pulse_period-pulse_width) sería bajo (por lo que la longitud total del pulso es de 20 ms).

Ahora no entiendo bien cómo funciona el registro OCR3A. Mi pensamiento para el ISR era tener una variable de bandera para que la primera vez que ISR se apague, envíe pulse_width fuera de OCR3A, luego establezca la bandera, la próxima vez que se apague, enviará pulse_period-pulse_width (que será bajo y será el espere un tiempo entre cada movimiento de servo) y establecerá la marca en 0 nuevamente.

Pero escribir a OCR3A moverá el servo, ¿verdad? ¿Mi plan funcionará en el modo de alternancia para el modo normal? Entonces, cualquier otro viaje al ISR envía el "tiempo de espera" que es bajo para que no se mueva servo?

Mi pregunta es, básicamente, ¿estoy en el camino correcto? ¿O si no puede alguien ayudarme a entender cómo generar un pulso de duración aleatoria seguido de una forma de onda de "tiempo de espera" en modo normal?

Esto es ATmega128 de nuevo fyi

GRACIAS !!

    
pregunta Tyler Dahle

1 respuesta

0

En el modo Normal, un temporizador no se reinicia cuando una salida de comparación coincide. Su primer valor en OCR3A debe ser el ancho del pulso, y el segundo debe ser el período del pulso. Deberá restablecer el temporizador a mano una vez que transcurra el período de pulso. Y lea con mucho cuidado todas las advertencias en la hoja de datos sobre la modificación de OCR3A y TCNT3 mientras se ejecuta el temporizador.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas