шаговый двигатель нерегулярного движения

Я использую MCU8051 IDE на MCU STM16; следующий сегментный код управляет скоростью шагового двигателя путем переключения порта P2.0 на любом шаговом драйвере PSR5041 в соответствии с напряжением потенциометра, подключенным к каналу АЦП P1.0:

MOV A,#11111111bMOV P1ASF, #000000001B; установить P1.0 ADCMOV ADC_CONTR, #11101000B; задержку включения АЦП и запуск аналого-цифрового преобразования; P1.0 как ADC NOPNOPNOPNOP

      MOV TH0, ADC_RES        ;A (high byte PWM)
MOV TL0, ADC_RES        ;A (low byte PWM)   
CLR TF0         ;clear timer overflow flag
SETB    TR0         ;start timer

ЖДАТЬ:

      JNB TF0, WAIT       ;wait for overflow
DJNZ    A,WAIT          ;A counter
CLR P2.2            ;ENA On PSR5042
CPL P2.0            ;toggle port bit

JB  P0.3, LOOP      ;Verify RIGTH, LEFT sensor

проблема в том, что код может управлять скоростью шагового двигателя только в очень коротком диапазоне, включая нерегулярные движения или потерю крутящего момента. ¿Как я могу улучшить код, чтобы я мог более точно управлять двигателем?

0 ответов

Другие вопросы по тегам