Programación de servos
P2DDR = 0xff
P3DDR = 0xff
P4DDR = 0xff
P5DDR = 0xff
P6DDR = 0xf0/*Interruptor DIP en la placa CPU*/
P8DDR = 0xff
P9DDR = 0xf7/*Puerto de comunicación*/
PADDR = 0xf7/*Sensor de detección de palanca de arranque*/
PBDR = 0xc0
PBDDR = 0xfe/*Tarjeta controladora del motor volumen 3*/
I/ La O El puerto está configurado en 0XFF, lo que indica salida (¿entrada? Esto depende de la hoja de datos del microcontrolador)
ITU0_TCR = 0x23
ITU0_GRA = timer_period;
ITU 0 _ IER = 0x 01;
Esta sección establece la interrupción del temporizador en 1 ms. No sé para qué se utiliza una interrupción.
ITU3 _ TCR = 0x23
ITU _ FCR = 0x3e
ITU 3 _ GRA = PWM _ CYCLE /*Configuración de período*/
ITU 3_GRB = ITU 3_BRB = 0;/*Configuración PWM del motor izquierdo*/
ITU 4_GRA = ITU 4_BRA = 0;/*Configuración PWM del motor derecho*/
ITU4_GRB = ITU4_BRB =servo_center; /*Configuración de Servo PWM*/
ITU_TOER = 0x38
Esta parte controla la velocidad del motor paso a paso. Se utilizan dos temporizadores para generar las señales de pulso requeridas por el motor paso a paso.
ITU_STR = 0x09 Temporizador de inicio
La mayor parte de este programa está etiquetado; cada instrucción se explica en inglés. Entonces lo entiendo.
Nunca antes había usado este microcontrolador. . Pero la mayoría de los microcontroladores son similares. Puede averiguarlo usted mismo leyendo la hoja de datos.